我正在编写一个程序来创建一个处理诸如执行基本命令,管道,重定向,执行后台进程等基本功能的shell。但是我无法杀死后台进程,我需要知道后台进程的pid(),以便我可以随pid一起发送kill命令。任何想法如何从ac pogram获得后台进程的pid()? 为了运行命令,我将命令行输入到数组中,解析并将命令放入arr [0]中,并将后续参数放入后续索引中,我将系统的PATH放入另一个数组中,并将它们存储为通过使用strtok和delim选项作为字符串,在此之后,我将命令连接到路径,然后执行execv()。从c prog查找后台进程的pid
我被困在这个部分,我必须杀死一个后台进程。任何建议都会非常有帮助。
在此先感谢。
但'execv()'不创建一个新的进程,但随着替代当前程序一个新的,wiouth改变PID!你必须调用fork()来创建一个新的进程。并且'fork()'返回新进程的PID ... – rodrigo
我打电话给fork,然后在子进程中执行一个execv,但是如何获得后台进程的PID? – user1434883
你有没有想过阅读fork(2)的文档? Stackoverflow不是您的手册页的替代品。 – tbert