当前位置: 技术问答>linux和unix
一个execl的问题
来源: 互联网 发布时间:2015-07-09
本文导语: 我想通过一个程序来让多个程序执行 main() { if (fork() == 0) { execl("/sbin/ifconfig","/ifconfig","eth0",NULL); execl("/bin/ping","/ping","127.0.0.1",NULL); execl("/bin/ls","ls","-l",NULL); } } 为什么只有第一个运行...
我想通过一个程序来让多个程序执行
main()
{
if (fork() == 0)
{
execl("/sbin/ifconfig","/ifconfig","eth0",NULL);
execl("/bin/ping","/ping","127.0.0.1",NULL);
execl("/bin/ls","ls","-l",NULL);
}
}
为什么只有第一个运行起来了
要让三个都运行起来 怎么办?
main()
{
if (fork() == 0)
{
execl("/sbin/ifconfig","/ifconfig","eth0",NULL);
execl("/bin/ping","/ping","127.0.0.1",NULL);
execl("/bin/ls","ls","-l",NULL);
}
}
为什么只有第一个运行起来了
要让三个都运行起来 怎么办?
|
execl的实现中是在一个子进程中
所以只能等第一个结束了,才执行第二个
你的参数好像也有问题,为什么在ifconfig前加个'/'呢?
所以只能等第一个结束了,才执行第二个
你的参数好像也有问题,为什么在ifconfig前加个'/'呢?
|
你还不如用system呢。
|
exec系统调用执行以后,就会用exec的程序正文替换掉现在的程序正文! 所以以前的程序就完全消失了! 当然不会往下执行。 要执行并返回的话,就用system()
|
第一个运行成功以后,后面的没有机会在执行了,
那楼上说的,或者fork几个进程来运行
那楼上说的,或者fork几个进程来运行