C++ 检查在cpp中传递给popen API的命令中是否存在错误
有一个cpp应用程序,我想读取以下类型的压缩文件-C++ 检查在cpp中传递给popen API的命令中是否存在错误,c++,c,popen,compression,C++,C,Popen,Compression,有一个cpp应用程序,我想读取以下类型的压缩文件- 文件_name.gz 文件名.Z 文件_name.tar.gz 为此,我检查文件扩展名并相应地选择解压缩技术。例如,文件_name.gz将使用“gunzip-C file_name.gz”进行解压缩 我想获取解压缩文件的文件句柄。我使用popen()API来实现它。现在,可能存在这样一种情况:由于内存问题,gunzip/uncompress/tar在解压缩文件时失败。如何在我的CPP应用程序中捕获失败。有办法检查popen是否失败。传递给pop
请帮忙。我试图在不同的地方找到它,但没有得到满意的解决办法 当进程正常终止时,它将向父进程返回退出代码0(合法地,
exit_SUCCESS
)。否则,在崩溃或任何其他异常终止的情况下,预计将返回非零值。您可以通过调用pclose()
获取退出代码。如果代码为0,则子进程很可能已成功终止。pclose()也将关闭文件流。如何在不关闭流的情况下进行检查。如果一切顺利,我仍将关闭流以检查是否有任何故障。只需继续读取流,直到EOF。然后调用pclose。我按照建议使用了pclose()。但对于一些案例,我得到了errno=ECHILD。你能告诉我这里可能出了什么问题吗?那正是坠机的迹象。看见