设为首页 加入收藏

TOP

多进程编程(四)
2012-08-26 13:53:26 】 浏览:22885
Tags:进程 编程
<unistd.h>
             int execl(path,arg0,...,argn,(char*)0)
             char *path,*arg0,...,*argn;

             int execv(path,argv)
             char *path,*argv[];

             int execle(path,arg0,...,argn,(char*)0,envp)
             char *path,*arg0,...,*argn,*envp[];

             int execve(path,argv,envp)
             char *path,*argv[],*envp[];

             int execvp(file,argv)
             char *file,*argv[];
        说明:这是一个系统调用族, 用于将一个新的程序调入本进程所占的内
             存, 并覆盖之, 产生新的内存进程映象. 新的程序可以是可执行
             文件或SHELL批命令.
             当C程序被执行时,是如下调用的:
             main(int argc,char *argv[],char *envp[]);
             argc是参数个数,是各个参数字符串指针数组,envp是新进程的环
             境变量字符串的指针数组.argc至少为1,argv[0]为程序文件名,
             所以,在上面的exec系统调用族中,path为新进程文件的路径名,
             file为新进程文件名,若file不是全路径名,系统调用会按PATH环
             境变量自动找对应的可执行文件运行.若新进程文件不是一个可
             执行的目标文件(如批处理文件),则execlp()和execvp()会将该
             文件内容作为一个命令解释器的标准输入形成system().
             arg0,...等指针指向'\0'结束的字符串,组成新进程的有效参数,
             且该参数列表以一个空指针结束.反过来,arg0至少必须存在并指
             向新进程文件名或路径名.
             同样,argv是字符串指针数组,argv[0]指向新进程文件名或路径
             名,并以一空指针结束.
             envp是一个字符串指针数组,以空指针结束,这些字符串组成新进
             程的环境.
             在调用这些系统调用前打开的文件指针对新进程来说也是打开的,
             除非它已定义了close-on-exec标志.打开的文件指针在新进程中
             保持不变,所有相关的文件锁也被保留.
             调用进程设置并正被捕俘的信号在新进程中被恢复为缺省设置,
             其它的则保持不变.
             新进程启动时按文件的SUID和SGID设置定义文件的UID和GID为有
             效UID和GID.
             新进程还继承了如下属性:
             . 附加GID.
             . 进程号.
             . 父进程号.
             . 进程组号.
             . 会话号.
             . 控制终端.
             . alarm时钟信号剩下的时间.
             . 当前工作目录.
             . 根目录.
             . 文件创建掩码.
&
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 4/25/25
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Core Dump?! 下一篇字符串转换篇

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目