Warning: Undefined array key "view" in /var/www/html/wp-content/uploads/classes/so/1920/lab-examples/index.php on line 2

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/wp-content/uploads/classes/so/1920/lab-examples/index.php:2) in /var/www/html/wp-content/uploads/classes/so/1920/lab-examples/index.php on line 47

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/wp-content/uploads/classes/so/1920/lab-examples/index.php:2) in /var/www/html/wp-content/uploads/classes/so/1920/lab-examples/index.php on line 48

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/wp-content/uploads/classes/so/1920/lab-examples/index.php:2) in /var/www/html/wp-content/uploads/classes/so/1920/lab-examples/index.php on line 49

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/wp-content/uploads/classes/so/1920/lab-examples/index.php:2) in /var/www/html/wp-content/uploads/classes/so/1920/lab-examples/index.php on line 50

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/wp-content/uploads/classes/so/1920/lab-examples/index.php:2) in /var/www/html/wp-content/uploads/classes/so/1920/lab-examples/index.php on line 51
/** * crea una pipe di comunicazione tra un padre ed il figlio: * questi poi la usano per una forma di "conversazione bidirezionale" * un po' atipica: e' infatti sconsigliato usare la stessa pipe * in entrambi i versi */ #include #include #include #include #include #define BUFSIZE 1024 int main(int argc, char *argv[]) { int pipefd[2]; char buffer[BUFSIZE]; if (pipe(pipefd) == -1) { perror("pipe"); exit(1); } if (fork() == 0) { // figlio if (read(pipefd[0], buffer, BUFSIZE) == -1) { perror("pipe"); exit(1); } printf("Figlio - messaggio ricevuto: '%s'\n", buffer); strncpy(buffer, "Crepi il lupo!!!", BUFSIZE); printf("Figlio - messaggio inviato: '%s'\n", buffer); if (write(pipefd[1], buffer, strlen(buffer) + 1) == -1) { perror("pipe"); exit(1); } exit(0); } else { // padre strncpy(buffer, "In bocca al lupo!", BUFSIZE); printf("Padre - messaggio inviato: '%s'\n", buffer); if (write(pipefd[1], buffer, strlen(buffer) + 1) == -1) { perror("pipe"); exit(1); } sleep(1); // aspetta un po', altrimenti il padre rileggerebbe il // proprio messaggio if (read(pipefd[0], buffer, BUFSIZE) == -1) { perror("pipe"); exit(1); } printf("Padre - messaggio ricevuto: '%s'\n", buffer); wait(NULL); // in realta' il figlio avra' gia' finito e questa non // diventa bloccante exit(0); } }