如何printf命令行命令的一部分

时间:2012-04-28 06:21:45

标签: c command-line-arguments zcat

您好我正在尝试在运行程序时printf命令行的某个部分。我目前运行我的程序如下

zcat gcc | sim

我想要完成的是打印到命令行的'gcc'部分的单独文件。有没有办法实现这一目标。谢谢你的帮助

我忘了提到这是在c而不是C ++

2 个答案:

答案 0 :(得分:0)

'sim'程序只知道它有来自stdin的数据。它不知道将数据传递给stdin是什么 - 它可能是另一个程序,或重定向输入,或来自设备。

从'sim'POV开始,只有来自stdin的数据。

IF 您可以保证您将始终通过管道从其他进程接收数据,您可以开始查找与“sim”流程匹配的流程标头,并从然后从关联的进程中提取进程信息。但是,我怀疑这不仅仅是你愿意去的。

答案 1 :(得分:0)

您正在将zcat(通过管道)的输出传递给您的程序,它不知道传递给zcat的参数的详细信息。 您可以显式将其作为输入流的一部分传递,

(echo 'zcat gcc'; zcat gcc ) | sim

但这是一个黑客攻击。如果您计划运行您的计划,那可能没问题 只用这种方式编程。