gpt4 book ai didi

c - 当命令访问不存在的文件时来自 popen 的错误状态

转载 作者:太空宇宙 更新时间:2023-11-04 06:46:41 25 4
gpt4 key购买 nike

考虑以下两行代码

sprintf(comm, "cat %s.bz2 | bunzip2 -dc", string);  
fp = popen(comm, "r");

如果我正在打开一个文件但该文件不存在,我只会得到一个 NULL 文件。但是,如果我使用 popen 通过 bunzip2 传输文件,如果底层文件不存在或已损坏,则 fp 将具有一个有效的指针而不是 NULL。显而易见的检查方法似乎是检查 popen 运行的命令的退出状态,但这似乎不可能。

有没有一种简单的方法可以让 popen 在命令失败时返回 null?

最佳答案

is there an easy way to make popen return null if a command fails?

没有。

这不是 popen()决定它成功运行(即:启动)的命令是否失败的任务。一个命令是否被视为“失败”完全取决于它在其中/下运行的逻辑应用程序级上下文。

不过,如果 popen() 没有返回NULL需要pclose() 的相关调用.后一个调用的结果告诉您 popen() 运行的退出状态。使用此退出状态,调用程序可以决定如何解释 popen() 的结果,从成功到失败。

关于c - 当命令访问不存在的文件时来自 popen 的错误状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57124967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com