*Untill when there is writer .....reader is able to read..
*Writer should be there means >>>open () should be called...either WRITER is writing or not
*Once process having writer terminates ...reader will not be able to read
*As writter has written.....& writer is still there..not close(wfd) is done....then reader will continue reading either writter is not writting....& untill when whole the data is not read
*Not matters either writter is wriiting or not .....to read 1st condition is that writer should be there & then 2nd condition is that writer should have wriiten something to read
*If i have two writers & two readers at the same time .....two readers r waiting to read..& i have operated two writers....writer operated 1st will be read by both of the readers..half-half...another writer which has operated late now require a new reader
*If i have 2 writers & 2 readers & readers r waiting for writers to write....if i have executed writer programs.....in background process like using command <writer1.c & writer2.c> <>will not be used in command......so background process will also take time of nenosecond to make in that time .....signals by kernel SIGPIPE goes to both readers one by one ...reader who got signal 1st will start reading..& who got signal 2nd will in 1 nenosecond will execute 2nd writer that will run in background process ...
*If by chance 2nd reader got signal before background process made ...then at that instant of time...reader will read garbage from fifo.....but writer will still wait for reader..which has already read garbage......time is managed internally...but problem will come it i had used sleep in read process...will make delay to read...so not able to read properly...untill writing got finished...
*Writer after writing will never wait for reader to read.......imagine if it will happen....how nice fifo would be.....?