APUE學習筆記-exec

#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

相關文章
相關標籤/搜索