- 論壇徽章:
- 0
|
不知道發(fā)在哪個模塊好。
unp中舉了很多例子,都用到了信號處理函數(shù)。我不是很明白為啥在程序結(jié)束時,還需要“恢復(fù)原來的信號處理函數(shù)”
static void connect_alarm(int);
int
connect_timeo(...)
{
Signfunc *sigfunc;
int n;
sigfunc = Signal(SIGLARM, connect_alarm); //這里我理解是設(shè)置信號處理函數(shù)
if ( (n = connect(sockfd, saptr, salen)) < 0) {
close(sockfd);
if(errno == EINTR)
errno = ETIMEDOUT;
}
alarm(0);
SIgnal(SIGLARM,sigfunc); //為啥這里還要"恢復(fù)原來的信號處理函數(shù)"。程序都結(jié)束了,設(shè)置還有什么特殊的用途嗎?
//就算是恢復(fù)原來的,應(yīng)該再次調(diào)用:Signal(SIGLARM, connect_alarm);
return (n);
}
static void
connect_alarm(int signo)
{
return;
} |
|