/* unsharedmem.c Started by Jeff Ondich on 4/11/96 Last modified on 4/7/10 This program does not demonstrate how to use shared memory in Linux. */ #include #include #include #include #include char gSharedBuffer[100]; int main( void ) { pid_t pid; int status; /* Initialize the (un)shared memory. */ strcpy( gSharedBuffer, "Mom, there's a singing moose outside!" ); fprintf( stdout, "[Parent:%d before fork] Buffer: '%s'\n", getpid(), gSharedBuffer ); /* Fork a child process */ pid = fork(); if( pid == -1 ) { perror( "fork() failure" ); } else if( pid != 0 ) { fprintf( stdout, "[Parent:%d] Waiting...\n", getpid() ); wait( &status ); fprintf( stdout, "[Parent:%d] Done waiting. Buffer: '%s'\n", getpid(), gSharedBuffer ); fprintf( stdout, "[Parent:%d] Quitting\n", getpid() ); } else { fprintf( stdout, "[Child:%d] Changing the buffer.\n", getpid() ); strcpy( gSharedBuffer, "The moose is gone now." ); fprintf( stdout, "[Child:%d] Buffer: '%s'\n", getpid(), gSharedBuffer ); fprintf( stdout, "[Child:%d] Quitting\n", getpid() ); } return 0; }