exec调用新程序

来源:互联网 发布:python png alpha合成 编辑:程序博客网 时间:2024/06/07 21:54
被调用程序:
#include <stdio.h>#include <sys/types.h>#include <unistd.h>int main(int argc, char *argv[], char **environ){  int i;  printf("I am a process image\n");  printf("My pid = %d, parentpid = %d\n", getpid(), getppid());  printf("uid = %d ,gid = %d\n", getuid(), getgid());  for(i = 0;i < argc;i++)    printf("argv[%d]:%s\n", i, argv[i]);}

调用程序:

#include <stdio.h>#include <sys/types.h>#include <sys/wait.h>#include <unistd.h>#include <stdlib.h>int main(int argc, char *argv[], char **environ){  pid_t pid;  int stat_val;  printf("Exec example\n");  pid = fork();  switch(pid){  case -1:    perror("Process Creation failed\n");    exit(1);  case 0:    printf("Child process is running\n");    printf("My pid = %d, parentpid = %d\n", getpid(), getppid());    printf("uid = %d, gid  = %d\n", getuid(), getgid());    execve("processimage", argv, environ);    printf("process never go to hear!\n");    exit(0);  default:    printf("Parent process is running\n");    break;  }  if(wait(&stat_val)!=pid)    printf("error\n");  exit(0);}


运行结果:


0 0
原创粉丝点击