以下4个原则摘自《Unix™ Systems Programming: Communication, Concurrency, and Threads》
1,使用库函数和系统调用时,查一下手册,确认是否会被sginal打断。如果会有EINTR,那么需要反复调用。
2,自己编写signal处理函数时,确认使用的库函数是signal-safe的!即,可重入的。
3,自己编写signal处理函数时,小心处理全局数据和静态数据!类似多线程的资源竞争。
4,自己编写signal处理函数时,先保存errno,处理完毕后,恢复errno