几个月前,我为 Linux 编写了一个 CGI 应用程序,用于popen()
读取命令的输出,然后我用fclose()
.
现在,我读到对于封闭管道是需要使用pclose()
.
手册说:
from 的返回值
popen()
在所有方面都是正常的标准 I/O 流,除了它必须用pclose()
而不是 . 关闭fclose(3)
。
我的代码是这样的:
if ((NULL != (f = popen(command.value, "r")))) {
//do something
fclose(f);
}
我的问题是:
我的错误有安全问题吗?它程序目前正在生产中。在测试中它没有做任何问题。真的需要,pclose()
改用补丁fclose()
吗?注意:我只在程序中打开 PIPE 一次。
今天,在我当地的家中,我做了一些测试fclose()
并且pclose()
没有返回 EOF 指示失败。