C system() 调用失败,错误为 "unterminated string"

标签 c

我有一小段 c 代码应该在我的 linux 机器上运行 awk 命令。然而,对于我来说,它不会执行。如果我直接在终端中运行 awk,它就会工作。

我当前失败的命令

system("awk '{ printf \"%d \n\", $12 }' results.dat | sort -n");

它失败了

awk: { printf "%d 
awk:          ^ unterminated string

您还如何转义双引号以便命令运行?另外为什么会失败,但是当我用 printf 替换系统调用时它会打印出来?

最佳答案

也许你应该再次转义\n,如

system("awk '{ printf \"%d \\n\", $12 }' results.dat | sort -n");
//                         ^ note the extra \

因为我认为 \nprintf 的一部分。

您当前的构造调用 system,参数为

awk '{ printf "%d 
", $12 }' results.dat | sort -n

关于C system() 调用失败,错误为 "unterminated string",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/645423/

相关文章:

c - 输出不正确,简单的字符串练习 - C

C 如何计算文本文件中唯一城市的数量

为字符串分配空间然后将字符插入该空间的正确方法?

c - fwrite 查找到文件末尾后写入文件末尾

python - 如何在 C 中创建 Python 类?

c - 归并排序: need of copying elements from temporary array

只返回输入参数的C函数

c - 在较新版本的 glibc ( 2.3 -> 2.10 ) 上编译时出现段错误

c++ - libssh2:写入数据包:套接字错误(或连接关闭)

c++ - c 中不兼容的指针类型警告?