- ベストアンサー
スクリプトの結果値を受け取るには
C言語でスクリプトを起動させます。 「sample」という、足算をするスクリプトがあるとすると、 int CHK ; CHK = system("/sh/sample 25 35") ; とすると、「sample」のスクリプトが起動され、その結果値「60」を「CHK」で受け取りたいと思います。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
そのスクリプトは結果値をどうやって返すのですか? 他のプログラムの処理結果を受け取るなら、system()でなく、標準出力をpopen() で受け取るのが普通です。 CHK = system() だと、スクリプトの完了コードが受け取れます。「exit 数値」で完了コードを指定しますが、値は0-255。 sample が、 expr "$1" + "$2" のように標準出力に足し算結果を返すものとすると、 FILE *fp; char buf[100]; fp=popen("/bin/sh sample 25 35","r"); if(fp) { CHK=atoi(fgets(buf,sizeof buf,fp)); }else{ エラー処理 }