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

标签 c++ c popen compression

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

  1. 文件名.gz
  2. 文件名.Z
  3. 文件名.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/

相关文章:

c++ - 如何使用 C 或 C++ 获取目录中的文件列表?

使用strtok和strchr分割字符的C程序

c - 具有函数指针和 void 指针成员的结构的内存分配错误

python - subprocess.Popen 和相关目录

python - 我如何格式化命令参数,它们本身是一组带有 Python 子进程模块的命令?

c++ - 使用 gcc、g++ 和 gdb 在 Window 7 上设置 VSCode 以进行 C/C++ 调试

c++ - 如何打印指向类c++类型的指针的值

php - 尝试在 PHP 中将 mysqldump -v 弹出并没有得到输出

c++ - 无法在 Windows 上编译 SQLCipher

使用FFMPEG库时编译错误