排序"输出"一个程序

时间:2013-01-24 02:40:07

标签: c unix sorting output

假设我运行的程序在运行过程中生成了几个printf语句。当然,每次碰到printf命令都会打印出来。我将如何进行打印而不是打印,“存储”它,然后在程序结束时,取出应该打印的所有行,对其进行排序然后打印出来。

e.g。

Run Program
prints "File1 90"
prints "File2 30"
prints "File3 40"
End Program

Run Program
prints "File1 90" (don't actually print it out)
prints "File2 30" (don't actually print it out)
prints "File3 40" (don't actually print it out)
Take print statements and rearrange them by numerical order, then print
Program prints:
prints "File2 30"
prints "File3 40"
prints "File1 90"

我想我必须在我的C程序中使用unix shell命令,例如    sort -k2n,2 -k1,1 myprogram

1 个答案:

答案 0 :(得分:1)

我能想到的一种方法是将stdout重定向到文件

freopen( "file.txt", "w", stdout );

然后使用sort参数将文件提供给-k 2,因为您要对第二列进行排序(?)

至于命令/ s,请参阅此example

它说明了基础知识。