我是GNU Linux的初学者。
我只是试图在启动时用我自己的代码替换init程序,并且在程序结束时调用原始的init。
但问题是:我无法在这里给出参数。我在程序中调用了init system("/sbin/init")
。我怎么能给出参数?
答案 0 :(得分:3)
如果您是初学者,为什么替换系统的根启动过程?这听起来像是一件相当危险的事情。有点像在处理步枪的第一周做apple shot或其他事情。
也就是说,假设您的方法有效,您需要格式化一个字符串以包含所需的参数,然后将该字符串传递给system()
。请查看snprintF()
,了解如何轻松构建字符串。
答案 1 :(得分:1)
像这样:
system("/bin/echo wibble wobble");
但你几乎肯定不想这样做。当您尝试它并且您的系统不再启动时,下次编辑inittab以便init运行您的程序而不是相反。
答案 2 :(得分:1)
由于system(3)更像是调用子例程,因此您应该使用fork()
创建子进程,然后调用execvp()
。