Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h> //fork
- #include <sys/wait.h> //waitpid
- #include <signal.h>
- #include <string.h>
- void handler(int signumber){
- printf("Signal with number %i has arrived\n",signumber);
- }
- int main() {
- int fd1[2]; // Used to store two ends of first pipe
- char fixed_str[] = "forgeeks.org";
- char input_str[] = "kurva";
- signal(SIGUSR1, handler);
- char sz[100];
- printf("Mentőexpedíció indul\n");
- pid_t child = fork();
- if (child>0) //the parent process
- {
- printf("Szülő: Var gyerekre \n");
- pause();
- printf("Szülő: Signal megerkezett %i\n", SIGUSR1);
- printf("Szülő: Ir a csovezetkbe \n");
- close(fd1[0]);
- write(fd1[1], "Hajra Fradi!\0",15);
- close(fd1[1]);
- printf("Szulo beirta az adatokat a csobe!\n");
- int status;
- wait(&status);
- printf("Szülő: befejezodott \n");
- }
- else //child process
- {
- printf("Gyerek: Elindult... \n");
- sleep(3);
- printf("Gyerek: Odaert... \n");
- printf("Gyerek: Signal kuldese... \n");
- kill(getppid(), SIGUSR1);
- printf("Gyerek: Signal elkuldve... \n");
- printf("Gyerek: Var a pipe uzenetre... \n");
- sleep(3);
- printf("Gyerek: elkezdi olvasni a csobol az adatokat!\n");
- close(fd1[1]); // Close writing end of first pipe
- // Read a string using first pipe
- char concat_str[100];
- read(fd1[0], concat_str, 100);
- printf("Gyerek: olvasta: %s\n", concat_str);
- close(fd1[0]);
- }
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement