execvp
来源:互联网 发布:mac梦幻西游文件夹 编辑:程序博客网 时间:2024/06/09 14:52
问题:一个程序如何运行另一个程序?
答:程序调用execvp
#include<stdio.h>
main(){
char *arglist[3];
arglist[0]="ls";
arglist[1]="-l";
arglist[2]=0; //参数字符串必须以0结束
printf("********About to execute ls -l\n");
execvp("ls",arglist);
printf("********ls is done.bye\n");
}
execvp有两个参数:要运行的程序名和那个程序的命令行参数。当程序运行时命令行参数以argv[]传给程序。最后一个参数必须为NULL。
$ ./exec1
********About to execute ls -l
total 196
-rwxr-xr-x 1 orisun orisun 7568 2011-12-22 16:35 bounce
-rw-r--r-- 1 orisun orisun 1736 2011-12-22 16:35 bounce.c
-rw------- 1 orisun orisun 208896 2011-12-22 15:19 core
-rwxr-xr-x 1 orisun orisun 7169 2011-12-22 17:28 exec1
这里有一个问题:为什么printf("************ls is done.bye\n")没有执行?
因为调用execvp时,内核将新程序载入到当前进程,替代当前进程的代码和数据。
- execvp
- execvp
- execvp
- execvp()函数
- python 小点心---execvp
- execve, execlp, execvp, execle比较
- c程序执行命令 execvp
- 多线程编程 execvp, getpid, pthread, fork(),setsid
- 使用execvp()函数需要注意的两点
- 使用execvp()函数需要注意的两点
- execvp族的示例—所谓旧瓶装新酒
- execl execlp execle execv execvp execve
- execve, execl, execlp, execle, exece, execvp
- pipe(fork, execvp, dup, dup2)
- execve, execlp, execvp, execle比较笔记
- 模拟shell ( 进程函数:fork(),execvp(),wait() )
- Linux shell的实现——execvp
- execlp execl execvp error:permission denied
- 自己编写more命令
- 使用读写缓冲
- 实现ll命令
- UNIX时钟
- 信号通信
- execvp
- 环境
- I/O重定向和管道
- fdopen和popen
- 进程间协作、同步
- 多线程基础
- pthread_cond_wait的思考
- 用curses库和多线程画来回运动的字符串
- Win7下用IIS发布网站