/*********************************************/
/*fork example*/
/**********************************************/
#include <unistd.h>
#include <stdio.h>
int main()
{
pid_t pid;
const char *usr_envp[] = {"MYDEFINE=unknown", "PATH=/tmp", 0};
printf("Begin fork() \n");
pid = fork();
switch(pid)
{
case -1:
perror("fork failed");
exit(1);
case 0:
if(execle("/tmp/child1", "myarg1", "my arg2", (char*)0, usr_envp) < 0)
perror("execle failed");
break;
defualt:
break;
}
if(waitpid(pid, NULL, 0) < 0)
{
perror("waitpid failed\n");
}
printf("parent exiting \n");
exit(0);
/*fork example*/
/**********************************************/
#include <unistd.h>
#include <stdio.h>
int main()
{
pid_t pid;
const char *usr_envp[] = {"MYDEFINE=unknown", "PATH=/tmp", 0};
printf("Begin fork() \n");
pid = fork();
switch(pid)
{
case -1:
perror("fork failed");
exit(1);
case 0:
if(execle("/tmp/child1", "myarg1", "my arg2", (char*)0, usr_envp) < 0)
perror("execle failed");
break;
defualt:
break;
}
if(waitpid(pid, NULL, 0) < 0)
{
perror("waitpid failed\n");
}
printf("parent exiting \n");
exit(0);
}
#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
int i;
char **pStr;
extern char **environ;
printf("child starting\n");
for(i=0; i<argc; i++)
printf("argv[%d] : %s\n", i, argv[i]);
for(pStr=environ; *pStr != 0; pStr++)
printf("%s\n", *pStr);
printf("child exiting\n");
exit(0);
}