检查传递给cpp中的popen API的命令中的错误

时间:2018-06-06 04:58:46

标签: c++ c popen compression

有一个cpp应用程序,我想读取以下类型的压缩文件 -

  1. file_name.gz
  2. file_name.Z
  3. file_name.tar.gz
  4. 为此,我检查文件扩展名并相应地选择解压缩技术。例如。 file_name.gz将使用" gunzip -C file_name.gz"解压缩。

    我想获取解压缩文件的FILE句柄。我使用popen()API。现在,可能存在由于内存问题而解压缩文件时gunzip / uncompress / tar失败的情况。如何在CPP应用程序中捕获故障。有办法检查popen是否失败。如何将命令传递给popen()。

    请帮忙。我试图在各个地方找到它,但无法得到满意的解决方案。

1 个答案:

答案 0 :(得分:1)

当进程正常终止时,应该将退出代码0(合法地,EXIT_SUCCESS)返回给父进程。否则,在发生崩溃或任何其他异常终止的情况下,预计将返回非零值。您可以致电pclose()获取退出代码。如果代码为0,则子进程很可能成功终止。