当命令将用户输入作为其某些参数时,我使用 fork()/exec()/wait() 而不是 system(),因此用户不能输入类似...
&rm -rf /home/* && echo HAHA
...作为一个论点。
我假设 popen 和 system() 一样危险,因为它需要一个字符串,而不是像 exec 系列函数那样的字符串列表。
不过,我只能从 exec 函数中获取返回值。是否有一个“安全”版本的 popen 可以使用用户输入运行并在父进程中处理 stdout / stderr ?