• ベストアンサー

スクリプトの結果値を受け取るには

C言語でスクリプトを起動させます。 「sample」という、足算をするスクリプトがあるとすると、   int CHK ; CHK = system("/sh/sample 25 35") ; とすると、「sample」のスクリプトが起動され、その結果値「60」を「CHK」で受け取りたいと思います。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.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{ エラー処理 }

関連するQ&A