#include #include #include #include #include #include #include int main() { int shmd = shm_open("/shm", O_RDWR | O_TRUNC | O_CREAT, 0755); ftruncate(shmd, sizeof(int)); int* memory = mmap(NULL, sizeof(int), PROT_READ | PROT_WRITE, MAP_SHARED, shmd, 0); *memory = 0; int fod = fork(); if (fod == 0) { while (*memory < 100) { *memory += 1; printf("%d %d\n", getpid(), *memory); sleep(1); } } else { while (*memory < 100) { sleep(2); *memory += 1; printf("%d %d\n", getpid(), *memory); } } munmap(memory, sizeof(int)); close(shmd); if (fod != 0) shm_unlink("/shm"); return 0; }