Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Error handling 为什么std::process::Command::output会失败?_Error Handling_Rust - Fatal编程技术网

Error handling 为什么std::process::Command::output会失败?

Error handling 为什么std::process::Command::output会失败?,error-handling,rust,Error Handling,Rust,什么会导致std::process:Command::output失败?如果被调用者程序失败,错误将作为结果输出的一部分被捕获。stderr,因此我猜输出只会在操作系统由于某种原因无法创建新进程时返回错误?对于我的简单CLI工具,这是可以安全忽略的吗? 打开正在执行的二进制文件时可能会出现问题(即访问被拒绝,不存在) 当等待进程完成时,waitpidsyscall可能会被调用 获取输出涉及创建一个管道,如果达到文件描述符限制,该管道将失败(cat/proc/sys/fs/file max检查)

什么会导致
std::process:Command::output
失败?如果被调用者程序失败,错误将作为结果
输出的一部分被捕获。stderr
,因此我猜
输出
只会在操作系统由于某种原因无法创建新进程时返回
错误
?对于我的简单CLI工具,这是可以安全忽略的吗?

  • 打开正在执行的二进制文件时可能会出现问题(即访问被拒绝,不存在)
  • 当等待进程完成时,
    waitpid
    syscall可能会被调用
  • 获取输出涉及创建一个管道,如果达到文件描述符限制,该管道将失败(
    cat/proc/sys/fs/file max
    检查)
  • 它还涉及打开一个文件,如果达到打开文件的限制,则打开文件将失败(
    ulimit-n
    检查)
您可能只需要担心前两个问题:您无法在内核中实现任何限制