system() 返回错误语法错误:"("意外
system() returns error syntax error: "(" unexpected
我想在我的C++代码中使用一个使用 system(( API 的命令。
该命令是:
comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u)
有关该命令的更多详细信息,请使用此链接。
当我在 Ubuntu 64 位机器上使用终端时,此命令可以完美运行,但是当我在 C++ 代码中使用系统("上述命令"(API 时,它会显示错误,如下所示:
sh:1:语法错误:"("意外(
我正在谷歌上搜索并找到一个解决方案(C 系统函数导致错误"sh:语法错误:"("意外">(,但接受的解决方案确实以另一种方式完成任务。这不是一个解决方案,其他解决方案不起作用。
每个人都解释了如何在 shell 脚本(.sh 文件(中删除此错误,因为所有解决方案都可能适用于.sh,但它们不适用于 system(( API。我无法找到如何在代码系统(( API 中删除此错误C++。
如前所述,用 <(...)
进行进程替换是 Bash 功能,在 vanilla sh 中不可用。因此,您需要显式调用 Bash shell:
bash -c "comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u)"
试试:
system("bash comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u)");
相关文章:
- vscode下的Arduino代码出现意外编译错误
- 错误 C2760:语法错误:映射迭代器上意外的标记"标识符",预期的";"
- C++标头错误 C2238 意外标记";"
- C++ 编译错误:意外的类型名称"字符串":预期的表达式
- 在gcc中意外调用了Const重载.编译器错误或兼容性修复程序
- "错误 C0000:语法错误,令牌"<EOF>"处出现意外$end,并且不确定
- boost::p rogram_options 在指定意外的位置参数时不报告任何错误
- 从 C++ 调用 cURL 命令会返回意外的错误代码,如 1792 和 6656
- Qt5 C++中出现意外"Multiple definition"错误
- 排序程序的意外错误代码
- 在 c++ 中声明向量时出现意外错误
- 函数调用中出现意外编译错误 (C++)
- 使用相同的函数时意外收到"std::out_of_range"错误
- 在第三个 pary 函数中使用矢量引用时出现意外错误
- 创建进程失败,意外错误
- 企业架构师错误:意外符号修复
- 在 Linux C++的两个线程之间使用管道的错误/意外行为
- Mex运行时错误:意外的标准表达式
- Cmake 奇怪的错误:语法错误意外的令牌 ('
- Cuda错误:意外启动失败