Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <sys/types.h>
- #include <unistd.h>
- #include <stdio.h>
- #include <stdlib.h>
- void leggi_dalla_pipe (int file)
- {
- FILE *f;
- int c;
- f = fdopen (file, "r");
- while ((c = fgetc (f)) != EOF)
- putchar (c);
- fclose (f);
- }
- /* Scrittura di un testo qualsiasi nella pipe */
- void scrivi_nella_pipe (int file)
- {
- FILE *f;
- f = fdopen (file, "w");
- fprintf (f, "Messaggio!\n");
- fclose (f);
- }
- int main (void)
- {
- pid_t pid;
- int mypipe[2];
- /* Crea la pipe. */
- if (pipe (mypipe))
- {
- fprintf (stderr, "Pipe non creata.\n");
- return EXIT_FAILURE;
- }
- pid = fork ();
- if (pid < 0)
- {
- fprintf (stderr, "Fork fallita.\n");
- return EXIT_FAILURE;
- }
- if (pid == 0)
- {
- /* Processo figlio: chiudere la parte di scrittura */
- close (mypipe[1]);
- leggi_dalla_pipe (mypipe[0]);
- return EXIT_SUCCESS;
- }
- else
- {
- /* Processo padre: chiudere la parte di lettura */
- close (mypipe[0]);
- scrivi_nella_pipe (mypipe[1]);
- return EXIT_SUCCESS;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement