Я пытаюсь выяснить, как определить, когда команда, вызванная popen , терпит неудачу.В программе test.c
ниже, popen возвращает ненулевое значение, хотя команда не выполняется.Любые подсказки?
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
int status;
fp = popen("foo", "r");
if (fp != NULL) {
puts("command successful");
status = pclose(fp);
if (status < 0) {
perror(NULL);
exit(EXIT_FAILURE);
}
} else {
perror(NULL);
exit(EXIT_FAILURE);
}
return 0;
}
Выход:
$ ./test
command successful
sh: 1: foo: not found