Emscripten: passaggio degli argomenti della riga di comando

1

Ho un programma in C "tradotto" (non so quale parola è appropriata) in Javascript, quindi posso usarlo in node.js. Il programma C è costituito da main che accetta i parametri della riga di comando. Capisco che ho bisogno di usare in qualche modo l'oggetto modulo per passare quegli argomenti della linea di comando, ma sono in perdita.

Il mio programma js è composto da 2 file: program.js (programma C compilato in js) e test.js (var module = require ('./ program.js'), e il resto che opera su questo programma importato.

La domanda è: come posso passare alcuni argomenti a questo programma C-tradotto-per-javascript-e-poi-importato?

    
posta Lugi 27.07.2016 - 10:21
fonte

1 risposta

4

Emscripten ha un oggetto globale chiamato Modulo , che ha arguments proprietà. Questa proprietà contiene una serie di argomenti che verranno passati. Basta impostarli prima di consentire a emscripten di eseguire il programma compilato.

Come così, in javascript:

Module['arguments'].push('first_param');
Module['arguments'].push('second_param');

In C:

int main(int argc, char *argv[])
{
    assert(argc == 3);
    assert(strcmp(argv[1], "first_param") == 0);
    assert(strcmp(argv[2], "second_param") == 0);
}

In alternativa potresti considerare di non costruire il tuo codice C come eseguibile con una funzione principale, ma piuttosto come una libreria che espone le singole funzioni C allo javascript. Quindi queste funzioni possono avere argomenti ben denominati e digitati e puoi passare gli argomenti (quasi) direttamente da javascript quando li chiamano.

    
risposta data 29.08.2016 - 19:39
fonte

Leggi altre domande sui tag