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() 執行文件,並將第二個參數作爲此執行文件的參數文件,參數必須以字符型空指針來結尾,以結束。