2
他のプログラムを呼び出すためにpopen()を使用していますが、その戻り値を$で取得したいですか?
例:
FILE* fd = popen("/usr/local/my_check > /dev/null ; echo $?","r");
int read_num = fread(buffer, sizeof(char), BUFFER_SIZE, fp);
printf("%s\n", buffer);
pclose(fd);
が、私はいつもprinf機能でゼロを取得します。
$によって戻り値を取得する方法は他にありますか? Cプログラムで?
ありがとうございました!ここ
は、プログラムのリターンコードを取得するための正しい方法である:
int ret = pclose(fd);
if(WIFEXITED(ret))
printf("%d\n", WEXITSTATUS(ret));
てみてください男のpopenと終了コードを取得することができます:pclose()関数は、関連するプロセスを待機し終了します; wait4(2)が返すコマンドの終了ステータスを返します。 – andrewdski
ありがとう、私はwaitpid()上のすべてを実現する – SILENCE