2017-02-02 11 views
0

nodeJSからCプログラム(NOT C++)に変数を送信する最も簡単な方法は何ですか?変数を受け取った後でこのCプログラムを実行しますか?NodeJSの変数でCプログラムを起動

app.js:

var test = 1; 

test.cの:あなたは、あなたのCプログラムにあなたの引数を渡すchild_processモジュールnodejs使用することができます

#include <stdio.h>  
int main() 
{ 
    int node_variable; 
    printf("Value from nodeJS is %d", node_variable); 

    return 0; 
} 
+0

「変数を送信する」とはどういう意味ですか? Cプログラムに引数として値を渡すことができます。 –

+1

コマンドライン引数として渡す=> [コマンドラインからCプログラムに引数を渡す](http://stackoverflow.com/questions/498320/pass-arguments-into-c-program-from-command-line) –

+0

はい、あなたが正しい!私はCプログラムに値を渡すことを意味します.. – Timofeev

答えて

1

(例えばhereを参照してください)。

app.js:

var test = 1; 
var exec = require('child_process').exec; 
exec('./test.bin '+test, function callback(error, stdout, stderr){console.log(stdout);}); 

はtest.cの:

#include <stdio.h> 

int main(int argc, char **argv) { 

    printf("value of test: %s\n", argv[1]); 
    return 0; 
} 

test.bintest.cから構築されたプログラムであると仮定すると、ジャバスクリプトファイルを実行すると、コンパイルされたプログラムは、(ここでは、テストの値を表示させます、 "1")。変数testの値が単一の(空ではない)引数と見なされるように注意してください。

+0

あなたの助けをありがとう!しかし、私は質問があります:私はこのprintfをコンソールから表示できますか?今私は空の行を得るので... – Timofeev

+0

私はそれを得ました:Dはコンパイルするのを忘れました... gcc test.c -o test – Timofeev

+0

Cプログラムのコードは、標準出力に直接出力されません。それは 'stdout'パラメータを使ってコールバックメソッドに送られます。コンソールに書き込むには、私の例のようにコールバックメソッドで 'console.log(stdout);'をコールするだけです。 –

関連する問題