C系统()调用失败,错误“未终止字符串”

时间:2009-03-14 05:06:23

标签: c

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

我当前失败的命令

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

失败了

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

你如何逃避双引号以便命令运行?另外为什么会失败,但当我用printf替换系统调用时会打印?

1 个答案:

答案 0 :(得分:8)

也许你应该再次逃离\n,如

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

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

您当前的构造使用

参数调用system
awk '{ printf "%d 
", $12 }' results.dat | sort -n