#include #include #include #include #include #define SIZE sizeof(int) //mmap-2.c int main (void) { pid_t pid; float* shared_memory, scritto, letto ; int i_letto, i_scritto; shared_memory=mmap(0, SIZE, PROT_READ|PROT_WRITE,MAP_ANONYMOUS|MAP_SHARED, -1, 0); pid = fork(); if (pid==0){ sleep(1); letto = *shared_memory; printf ("\tprocesso generato. Leggo = %f\n", letto); sleep(2); i_letto = *(int*)shared_memory; printf ("\tprocesso generato. Leggo = %d\n", i_letto); } else { scritto=20; *shared_memory = scritto ; printf ("Processo padre. Scrivo = %f\n", scritto ); sleep(2); i_scritto=47; *(int*)shared_memory = i_scritto ; printf ("Processo padre. Scrivo = %d\n", i_scritto ); wait(pid); } return (0); }