Hi,
Recently I was reading some c coding by some colleagues and I noticed that the above trend. They will create a pipe for the process then they will use the standard signal handler to capture a particular signal and write that signal to the pipe. On the other end, the process will read the pipe and retreive the signal.
Is it enough to simply use the signal handler and do a switch case. Why do they have to create a pipe?
I am sorry if this is a newbie question. 
it looks like this's a signal forwarding. however, since not all signals can be caught (such as kill), all signals won't be forwarded.
for what?
I mean is it necessary to do a piping or can I just do it the normal way? What is the purposes or advantages of doing a piping in this case? Please give me whatever advice you can provide.
Sorry, I am pretty newbie to these stuffs.
I have never heard of handling signals in this manner. It sounds like a silly technique to me. Why not ask the authors why they did that?
I run through my system's source codes and I notice that this is often done for application programs or process that uses motif but it is also used for some other processes that perform serial port communication. Recently, I have written a motif application for a GSM server and I am also using their piping methods but now I am questioning the purpose/wisdom of doing it.
Its basically a 5 steps procedure
1)Do the standard signal declarations
2)Open a pipe
3)Create a signal handler for a particular signal eg SigUSR1
4)If the handler is provoked, write something(can be anything) into the pipe, chain the old handlers
5)Read the pipe and if there is something in there, do something, mostly cross-server processes.
Isn't it easier to use the standard signal handlers and do a case statement to decide what to do for each received signals?
Is it possible that the original authors wanted to avoid too much handling codes for different signals so they decided to simply create a pipe for single signal handling? I believe they are doing this for some good reasons because they are doing this for almost all the processes. I may sounds a bit stubborn but I am really very curious and very interested to get an answer for this.
I have tried to ask one of them(there are not many left) but he could not give me a good answer 
You seem to be convinced this is a brilliant technique and great insights await anyone who understands it. That might be true. But maybe they just didn't know any better.
I can't say that I'm surprised.
Anyway, thanks for the prompt reply and advice. 
I agree with Perderabo. It is just extra overhead.
We had code with goofy architecture as well - I got to fix most of it. Just because it's creative doesn't make it good. Sometimes goofy code derives from code translators - like cobol2c - and people think there's something magic going on and they leave it alone.