为什么 std::process::Command::ouput 会失败?
Why would std::process::Command::ouput fail?
什么会导致 std::process:Command::output
失败?如果被调用程序失败,错误将作为结果 Output.stderr
的一部分被捕获,所以我猜 output
只会 return 一个 Error
如果 OS由于某种原因未能创建新流程?对于我的简单 CLI 工具,我可以安全地忽略它吗?
- 打开正在执行的二进制文件可能存在一些问题(即访问被拒绝,不存在)
- 等待进程完成时,
waitpid
系统调用可能是
- 获取输出涉及创建管道,如果达到文件描述符限制,管道将失败(
cat /proc/sys/fs/file-max
进行检查)
- 还涉及到打开文件,如果达到打开文件数限制会失败(
ulimit -n
检查)
您可能只需要担心前两个:您无法对内核中的限制做任何事情。
什么会导致 std::process:Command::output
失败?如果被调用程序失败,错误将作为结果 Output.stderr
的一部分被捕获,所以我猜 output
只会 return 一个 Error
如果 OS由于某种原因未能创建新流程?对于我的简单 CLI 工具,我可以安全地忽略它吗?
- 打开正在执行的二进制文件可能存在一些问题(即访问被拒绝,不存在)
- 等待进程完成时,
waitpid
系统调用可能是 - 获取输出涉及创建管道,如果达到文件描述符限制,管道将失败(
cat /proc/sys/fs/file-max
进行检查) - 还涉及到打开文件,如果达到打开文件数限制会失败(
ulimit -n
检查)
您可能只需要担心前两个:您无法对内核中的限制做任何事情。