Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <unistd.h>
- #include <sys/wait.h>
- #include <sys/types.h>
- #include <errno.h>
- int main(int argc, char * argv[]){
- pid_t pid_red, pid_green;
- int red,green = 0;
- char *args[] = { argv[1],argv[2],argv[3], NULL };
- switch(pid_red = fork()){
- case 0 : red = execlp("xterm","xterm","-bg","red",NULL);
- if (red == -1){
- perror("Execlp-Error\n");
- printf("errno = %d \n",errno);
- exit(-1);
- }break;
- case -1 : perror("Fork-Fehler");exit(1);break;
- default: printf("Ich bin ein rotes Terminal und meine PID ist: %d\n",pid_red);break;
- }
- switch(pid_green = fork()){
- case 0 : green = execvp(argv[1],args);
- if (green == -1){
- perror("Execvp-Error\n");
- printf("errno = %d \n",errno);
- exit(-1);
- }break;
- case -1 : perror("Fork-Fehler");exit(1);break;
- default: printf("Ich bin ein grĂ¼nes Terminal und meine PID ist: %d\n",pid_green);break;
- }
- while(waitpid(-1,NULL,0)!=-1){
- if (WIFEXITED(red)){
- printf("Der Prozess mit der PID: %d wurde terminiert.\n",pid_red);
- }
- if (WIFEXITED(green)){
- printf("Der Prozess mit der PID: %d wurde terminiert.\n",pid_green);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement