红联Linux门户
Linux帮助

关于exec()

发布时间:2009-08-16 14:38:48来源:红联作者:释梵
//a.out的源代码
#include
#include
#include

int main()
{
pid_t pid;
printf("This is before the fork()\n");
if((pid=fork())<0)
{
printf("fork error!\n");
exit(1);
}
else if(pid==0)
{
if(execl("/root/Desktop/c/test/","./b.out",NULL)<0)
{
printf("%4d:execl error!\n",getpid());
exit(0);
}
printf("Child process is printing.\n");
}
else
{
printf("Parent process is printing.\n");
}
exit(0);
}
//b.out的源代码
#include

int main()
{
printf("Here is a negetive progress\n");
return 0;
}

为什么我运行a.out调用b.out总是不成功?execl()应该怎样使用?请大侠们指点迷津。
文章评论

共有 1 条评论

  1. 释梵 于 2009-08-16 14:57:06发表:

    自问自答:
    几乎网上和书上都说第一个参数是pathname,之后是命令行参数。
    但是我通过实践得知第一个参数要把你要执行的文件写进去,而且你没有什么特殊的要求的话,这一个参数再加一个NULL参数就可以了。
    实践出真知啊!