#include "apue.h" #include <sys/wait.h> char *env_init[] = {"USER=unknow", "PATH=/tmp", NULL}; int main(void) { pid_t pid; if((pid = fork()) < 0) err_sys("fork error"); else if(pid == 0){ if(execle("/home/game/NetworkStudy/echoall", "echoall", "myarg1", "MY ARG2", (char *)0, env_init) < 0) err_sys("execle error"); } if(waitpid(pid, NULL, 0) < 0) err_sys("wait error"); if((pid = fork()) < 0) err_sys("fork error"); else if(pid == 0){ if(execlp("/home/game/NetworkStudy/echoall", "echoall", "only 1 arg", (char *)0) < 0) err_sys("execlp error"); } exit(0); }
//echoall函數 #include "myapue.h" int main(int argc, char *argv[]) { int i; char **ptr; extern char **environ; for(i = 0; i < argc; i++) printf("argv[%d]: %s\n", i, argv[i]); for(ptr = environ; *ptr != NULL; ptr++) printf("%s\n", *ptr); exit(0); }
(1)<199>數組
int execle(const char *path, const char *arg,函數
..., char * const envp[]);指針
path:是路徑名code
envp:指向環境字符串指針數組的指針。可爲子進程指定某一個肯定的環境。進程
(2)字符串
int execlp(const char *file, const char *arg, ...);it
file:是文件名。若file中包含/,就將其視爲路徑名。不然就按PATH環境變量,在它所指定的各目錄中搜尋可執行文件。class