如何知道popen()
成功/完成运行shell还是失败了?
答案 0 :(得分:6)
成功完成后,popen()将返回一个指向open的指针 可用于读取或写入管道的流。否则,它 应返回空指针,并可设置errno以指示错误。
fp = popen("ls *", "r");
if (fp == NULL)
/* Handle error */;
答案 1 :(得分:3)
假设您的意思是在C代码中运行popen,您可以查看手册页。它说popen如果失败则返回NULL,否则返回文件流。
答案 2 :(得分:1)
公认的答案并不是确定的。
例如,要求popen()
执行无效的命令或图像只会返回一个有效的文件指针(没有要读取的内容)。同时,从外壳程序得到的错误消息将重定向到父级的stderr
。
popen()
在无法生成外壳时确实会返回NULL,这在通常情况下是不寻常的情况。