无论在 popen() 中传递什么“cmd”字符串,对我来说都不会失败
所以即使对于随机的“cmd”字符串,fp 也永远不会为 NULL。
FILE *fp;
char path[1035];
char cmd = "randomrandomrandom";
fp = popen(cmd, "r");
if (fp == NULL) {
//Handle Error
exit(1);
}
while (fgets(path, sizeof(path)-1, fp) != NULL) {
printf("%s", path);
}
pclose(fp);
最佳答案
popen
运行 shell 的实例。启动 shell 通常会成功。您需要确定它是否已成功终止。 popen
本身不能这样做,但 pclose
可以:它返回子进程的状态(如果发生另一个错误,则返回 -1)。
因此,为了验证命令是否已成功执行,需要检查popen
和pclose
的返回值。
关于c - popen() 对所有命令都是成功的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46718321/