使用C程序为程序提供参数

时间:2012-03-19 14:14:27

标签: c

我是GNU Linux的初学者。

我只是试图在启动时用我自己的代码替换init程序,并且在程序结束时调用原始的init。

但问题是:我无法在这里给出参数。我在程序中调用了init system("/sbin/init")。我怎么能给出参数?

3 个答案:

答案 0 :(得分:3)

如果您是初学者,为什么替换系统的根启动过程?这听起来像是一件相当危险的事情。有点像在处理步枪的第一周做apple shot或其他事情。

也就是说,假设您的方法有效,您需要格式化一个字符串以包含所需的参数,然后将该字符串传递给system()。请查看snprintF(),了解如何轻松构建字符串。

答案 1 :(得分:1)

像这样:

system("/bin/echo wibble wobble");

但你几乎肯定不想这样做。当您尝试它并且您的系统不再启动时,下次编辑inittab以便init运行您的程序而不是相反。

答案 2 :(得分:1)

由于system(3)更像是调用子例程,因此您应该使用fork()创建子进程,然后调用execvp()

请参阅Pipe, Fork, Exec and Related Topics