Как вызвать другую программу и получить возвращаемое значение на $? - PullRequest
2 голосов
/ 06 июля 2011

Я использую popen () для вызова другой программы и хочу получить ее возвращаемое значение в $?

ex:

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));

1 Ответ

9 голосов
/ 06 июля 2011

Вы можете получить код выхода с помощью

int rc = pclose(fd)
...