Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.18 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <unistd.h>
  4. #include <sys/wait.h>
  5. #include <sys/types.h>
  6. #include <errno.h>
  7.  
  8. int main(int argc, char * argv[]){
  9.  
  10. pid_t pid_red, pid_green;
  11. int red,green = 0;
  12.  
  13. char *args[] = { argv[1],argv[2],argv[3], NULL };
  14.  
  15. switch(pid_red = fork()){
  16.  
  17.     case 0 : red = execlp("xterm","xterm","-bg","red",NULL);
  18.          if (red == -1){
  19.             perror("Execlp-Error\n");
  20.             printf("errno = %d \n",errno);
  21.             exit(-1);
  22.          }break;
  23.  
  24.     case -1 : perror("Fork-Fehler");exit(1);break;
  25.  
  26.     default: printf("Ich bin ein rotes Terminal und meine PID ist: %d\n",pid_red);break;
  27.  
  28. }
  29.  
  30. switch(pid_green = fork()){
  31.  
  32.     case 0 : green = execvp(argv[1],args);
  33.          if (green == -1){
  34.             perror("Execvp-Error\n");
  35.             printf("errno = %d \n",errno);
  36.             exit(-1);
  37.          }break;
  38.  
  39.     case -1 : perror("Fork-Fehler");exit(1);break;
  40.  
  41.     default: printf("Ich bin ein grĂ¼nes Terminal und meine PID ist: %d\n",pid_green);break;
  42.  
  43. }
  44.  
  45. while(waitpid(-1,NULL,0)!=-1){
  46.     if (WIFEXITED(red)){
  47.         printf("Der Prozess mit der PID: %d wurde terminiert.\n",pid_red);
  48.     }
  49.  
  50.     if (WIFEXITED(green)){
  51.         printf("Der Prozess mit der PID: %d wurde terminiert.\n",pid_green);
  52.     }
  53. }
  54.  
  55. return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement