有一个 cpp 应用程序,我想在其中读取以下类型的压缩文件-
- 文件名.gz
- 文件名.Z
- 文件名.tar.gz
为此,我检查了文件扩展名并相应地选择了解压缩技术。例如。 file_name.gz 将使用“gunzip -C file_name.gz”解压缩。
我想获取解压文件的文件句柄。我为此使用 popen() API。现在,可能会出现 gunzip/uncompress/tar 在解压缩文件时由于内存问题而失败的情况。如何捕获我的 CPP 应用程序中的失败。有办法检查 popen 是否失败。传递给 popen() 的命令呢?
请帮忙。我试图在各个地方找到它,但无法得到满意的解决方案。
最佳答案
当进程正常终止时,期望将退出代码 0(合法地,EXIT_SUCCESS
)返回给父进程。否则,在崩溃或任何其他异常终止的情况下,预计将返回一个非零值。您可以通过调用 pclose()
获取退出代码。如果代码为 0,则子进程很可能已成功终止。
关于c++ - 检查传递给 cpp 中的 popen API 的命令中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50712525/