Ejemplo n.º 1
0
static int skb(int argc, char *argv[])
{
    static bool init = false;

    if(argc < 2) {
        printf("Usage: %s <program>\n", argv[0]);
        return 1;
    }

    if(!init) {
        skb_client_connect();
        init = true;
    }

    char *result = NULL, *str_err = NULL;
    int32_t int_err;

    skb_evaluate(argv[1], &result, &str_err, &int_err);

    if (int_err != 0 || (str_err != NULL && str_err[0] != '\0')) {
        printf("SKB error returned: %"PRIu32" %s\n", int_err, str_err);
    } else {
        printf("SKB returned: %s\n", result);
    }

    free(result);
    free(str_err);

    return 0;
}
Ejemplo n.º 2
0
errval_t skb_execute(char *goal)
{
    int32_t error;
    char *result, *error_out;
    errval_t err = skb_evaluate(goal, &result, &error_out, &error);
    if (err_is_fail(err)) {
        return err_push(err, SKB_ERR_EVALUATE);
    }
    error_code = error;
    strncpy(output, result, OUTPUT_SIZE);
    strncpy(error_output, error_out, OUTPUT_SIZE);
    free(result);
    free(error_out);
    if (error != 0) {
        return err_push(err, SKB_ERR_EXECUTION);
    }
    return err;
}