如何在C代码中编写shell“&”?
在为我的问题做了很长时间的研究之后,我真的不知道如何解决它。 我的问题是,我需要这样的C源代码: ls& 如果我像这样编写代码,“ls-l”将被执行,但它并没有分叉到后台 它只是一个示例“ls-l”,也可以是“xournal&;”libreoffice&'或类似的东西。 我的主要问题是,我不知道如何用C编写“&”。如何在C代码中编写shell“&”?,c,shell,unix,exec,fork,C,Shell,Unix,Exec,Fork,在为我的问题做了很长时间的研究之后,我真的不知道如何解决它。 我的问题是,我需要这样的C源代码: ls& 如果我像这样编写代码,“ls-l”将被执行,但它并没有分叉到后台 它只是一个示例“ls-l”,也可以是“xournal&;”libreoffice&'或类似的东西。 我的主要问题是,我不知道如何用C编写“&”。 有人能为我提供一个提示或解决方案吗?当您执行另一个程序时,您需要调用以下函数: new_pid = fork(); exec(...); //in the child only 如
有人能为我提供一个提示或解决方案吗?当您执行另一个程序时,您需要调用以下函数:
new_pid = fork();
exec(...); //in the child only
如果要等待新进程结束,即不指定调用的(&U)
waitpid(new_pid, ...);
这样,您的shell将阻塞,直到启动的过程完成
如果您不想等待,但只需继续操作shell,即指定&您只需不调用waitpid即可。使用systemls&
如果您解释了为什么要在后台运行某个程序,这会有所帮助。它是美式键盘上的+7。如果您只是搜索fork和exec函数族,则有许多程序使用fork和exec函数族。@H2CO3+6在瑞典语关键字上:Google fork系统调用。很高兴您不必编写代码:{:|:&}:
waitpid(new_pid, ...);