Why not SIGPIPE for readers of pipe/FIFO?


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Why not SIGPIPE for readers of pipe/FIFO?
# 1  
Old 05-17-2010
Why not SIGPIPE for readers of pipe/FIFO?

Hi

This is a exercise question from Unix network programming vol2.

Why the SIGPIPE signal is generated only for writers when readers disappear.
why not it is generated for readers when writer disappears.


I guess, if the writer didn't get any response like the reader gets EOF,
it will keep on adding bytes to pipe/FIFO and eventually cause PIPE_BUF to full.

Please correct me if i am wrong.

Thanks
Kumaran
# 2  
Old 05-17-2010
See your book. Figure 4.21 contains the answer.
# 3  
Old 05-18-2010
The figure 4.21 says that SIGPIPE will be generated to a write process, when the read process has been terminated/ no read process is present.

My doubt is why not the reader gets SIGPIPE when write process terminates/ no write process exists.
# 4  
Old 05-20-2010
Think about it. Is reading still potentially possible when the writing process terminates?
# 5  
Old 05-20-2010
Quote:
My doubt is why not the reader gets SIGPIPE when write process terminates/ no write process exists.
Because there simply is no need to signal the reader as the reader already has a mechanism to detect this condition.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

UNIX fifo concurrent read from a named pipe

I have created a fifo named pipe in solaris, which writes the content of a file, line by line, into pipe as below: $ mkfifo namepipe $ cat books.txt "how to write unix code" "how to write oracle code" $ cat books.txt >> namepipe & I have a readpipe.sh script which reads the named... (2 Replies)
Discussion started by: naveen mani
2 Replies

2. Programming

SIGPIPE and EPIPE

When a write() writes on a broken pipe, with no readers, it generates a SIGPIPE signal and the process exits. When the write() returns -1 and errno is EPIPE? Do I have an handler for SIGPIPE, or can I ignore it? (2 Replies)
Discussion started by: hurricane
2 Replies

3. Shell Programming and Scripting

awk reading from named pipe (fifo)

I'm trying to read a fifo using awk and comming across some problems. I'm writing to the fifo from multiple processes invoked by GNU Parallel: mkfifo my_fifo awk '{ a = a + $2 } END { for (i in a) print i, a }' my_fifo | sort -nk1 > sorted_output grep -v '^@' massive_file | parallel... (3 Replies)
Discussion started by: nathanhaigh
3 Replies

4. Programming

Pipe & fifo size limit

Hi guys. 1. how much is the size of pipe?(i mean the buffer size) 2. is this size different in various UNIX derivations? 3. what happens if we write to a full pipe? does it block until get some free space(the other side receive data) or returns an error? 3. FIFO s are physical files on the... (2 Replies)
Discussion started by: majid.merkava
2 Replies

5. UNIX for Dummies Questions & Answers

fifo or named pipe working?

Can someone explain to me the working of fifo() system call using simple C programs so that I can implement them in the UNIX environement? (1 Reply)
Discussion started by: lvkchaitanya
1 Replies

6. Shell Programming and Scripting

Reading from blocking fifo pipe in shell script

Hi!! I have a problem reading from a fifo pipe in shell script. The idea is simple, I have a C program with two pipe files: An input pipe I use to send commands in shell script to the C program (echo "command" > input.pipe) An output pipe that I read the result of the command also in... (4 Replies)
Discussion started by: victorin
4 Replies

7. UNIX for Advanced & Expert Users

PIPE and FIFO buffer size

Hello! How I can increase (or decrease) the predefined pipe buffer size? Thanks! (1 Reply)
Discussion started by: Jus
1 Replies

8. Programming

Pipe & fifo....

Could someone Help me with this code please? #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <string.h> #include <fcntl.h> #define SIZE_B 256 /*buffer's size */ #define NUM_ARG 20 /* max number of args for any command */ int... (4 Replies)
Discussion started by: M3xican
4 Replies

9. Programming

Magnetic card readers

i can't find any info on developing for magnetic card readers in the unix environment. I'm developing a POS system and i want it to include credit card verification. Any direction would be hot... (6 Replies)
Discussion started by: Gekko
6 Replies
Login or Register to Ask a Question