inter process communicat - IPC using FIFO in UNIX environment -
i trying implement ipc using fifo. code sender follows..
#include <stdio.h> #include <errno.h> #include <stdlib.h> #include <sys/stat.h> #include <unistd.h> #include <string.h> #include <fcntl.h> #include <sys/types.h> #define buffer_size 100 #define listener1 "listener1" char news[buffer_size]; void broadcast() { int fd1; mkfifo(listener1,0644); fd1=open(listener1,o_wronly); printf("\nready broadcast\n"); { printf("\nenter message : "); scanf("%s",news); write(fd1,news,strlen(news)); } while (1); return; } int main() { broadcast(); return 0; } the code receiver follows..
#include <stdio.h> #include <errno.h> #include <stdlib.h> #include <sys/stat.h> #include <unistd.h> #include <string.h> #include <fcntl.h> #include <sys/types.h> #define buffer_size 100 #define listener "listener1" char news[buffer_size]; void receive() { int fd1,num; mkfifo(listener,0644); fd1=open(listener,o_rdonly); while((num=read(fd1,news,buffer_size))>0) { news[num]='\0'; printf("\n received : %s",news); } return; } int main() { receive(); return 0; } i run 2 programs in 2 terminal window. problem facing messages not getting delivered intently. suppose type message in window of sender, not appear in receiver's window until , unless type next message in sender's window. want messages delivered return key pressed. please help!
Comments
Post a Comment