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:是路径名

envp:指向环境字符串指针数组的指针。可为子进程指定某一个确定的环境。

(2)

int execlp(const char *file, const char *arg, ...);

file:是文件名。若file中包含/,就将其视为路径名。否则就按PATH环境变量,在它所指定的各目录中搜寻可执行文件。

你可能感兴趣的:(APUE学习笔记-exec)