execv.c
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
extern char **environ;
void main(int argc, char* argv[]){
printf("In execv func.\n");
execv("linuxdba",argv); // 跳转去执行linuxdba程序
printf("Should do not execute.\n"); // execv执行成功,此句不会被执行
}
linuxdba.c
#include <stdio.h>
#include <unistd.h>
void main(){
sleep(3);
printf("This is in linuxdba func.\n");
}
execlp.c
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
extern char **environ;
void main(int argc, char* argv[]){
execlp("/bin/cat", "cat", argv[1], (char *)NULL);
}
gcc –o execlp execlp.c
./execlp /etc/passwd
execlp() 执行文件,并将第二个参数作为此执行文件的参数文件,参数必须以字符型空指针来结尾,以结束。