首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

execl()函数,该如何处理

2012-03-13 
execl()函数fork()创建了子进程后怎么用execl()加载另一个程序,而不是单纯的复制父进程?急需答案!!![解决

execl()函数
fork()创建了子进程后怎么用execl()加载另一个程序,而不是单纯的复制父进程?急需答案!!!

[解决办法]
例子都在这里 自己去看http://blog.chinaunix.net/u3/99348/showart_2184215.html
[解决办法]
那程序当然得是你系统里有的了!加上路径.
int execl(const char *path, const char *arg, ...);
从这函数原型的第一个参数你看不出来?
比如刚才那个博客里的一个例子
execl("/bin/echo", "echo", "executed by execl", NULL)<0)

这不就是在执行/bin/echo吗?

man execl看详细
[解决办法]

探讨

我自己编写了一个程序print,放在哪里合适?
我之前把它放在自己新建的一个文件夹(/home/wangm/程序)下,
execl("/home/wangm/程序","print",(char *)0)
运行结果:permission denied
那里有问题?

[解决办法]

有几点需要注意一下:

1. print这个名字,是有一个现成的命令使用的,最好是换一个以免混淆。因为命令print放在execl()中,你可能会看不出效果。

2. 你也许应该使用execlp()函数。如下:
C/C++ code
execlp("print","print",(char *)0)
[解决办法]
那么多人都说了 你写的
execl("/home/wangm/程序","print",(char *)0)
正确的应该是
execl("/home/wangm/程序/print","print",(char *)0)

你还没看到区别?

热点排行
Bad Request.