/*----------------------------------------------------------------------------*/ #include #include /*----------------------------------------------------------------------------*/ #include "fmsglib.h" /*----------------------------------------------------------------------------*/ #define DATAFILE "message.txt" #define WFLAG "WRITEDONE" #define RFLAG "READDONE" /*----------------------------------------------------------------------------*/ int main(int argc, char *argv[]) { if(fork() == 0) { /** child stuff */ char child_msg[MSG_SIZE_MAX]; while(check_flag(WFLAG)); read_message(DATAFILE,child_msg,MSG_SIZE_MAX); child_msg[MSG_SIZE_MAX-1]=0x0; printf("[Child-%d] MsgRead: %s\n",getpid(),child_msg); setup_flag(RFLAG); while(!check_flag(WFLAG)); clear_flag(RFLAG); } else { /** parent stuff */ char parent_msg[] = "I AM LEGEND!"; write_message(DATAFILE,parent_msg); printf("[Parent-%d] MsgWrite: %s\n",getpid(),parent_msg); setup_flag(WFLAG); while(check_flag(RFLAG)); clear_flag(WFLAG); clear_flag(DATAFILE); } printf("[%d] Done\n",getpid()); return 0; } /*----------------------------------------------------------------------------*/