当前位置: 技术问答>linux和unix
linux下超时处理的问题
来源: 互联网 发布时间:2015-10-29
本文导语: 为什么在循环里只有第一次超时调用了jmptimeout函数,后来的超时处理没有起作用? #include #include jmp_buf _jmp; void jmptimeout(int sig) { signal(sig, SIG_IGN); signal(SIGALRM, jmptimeout); longjmp(_jmp, 1); } int jmp( ) { if(s...
为什么在循环里只有第一次超时调用了jmptimeout函数,后来的超时处理没有起作用?
#include
#include
jmp_buf _jmp;
void jmptimeout(int sig)
{
signal(sig, SIG_IGN);
signal(SIGALRM, jmptimeout);
longjmp(_jmp, 1);
}
int jmp( )
{
if(signal(SIGALRM, jmptimeout) == SIG_ERR)
{
return -1;
}
if(setjmp( _jmp ) == 0)
{
alarm( 2 );
sleep( 4 );
alarm(0);
return 0;
}
alarm( 0 );
return -1;
}
int main(int argc, char *argv[])
{
int i;
for ( i=0; i
#include
#include
jmp_buf _jmp;
void jmptimeout(int sig)
{
signal(sig, SIG_IGN);
signal(SIGALRM, jmptimeout);
longjmp(_jmp, 1);
}
int jmp( )
{
if(signal(SIGALRM, jmptimeout) == SIG_ERR)
{
return -1;
}
if(setjmp( _jmp ) == 0)
{
alarm( 2 );
sleep( 4 );
alarm(0);
return 0;
}
alarm( 0 );
return -1;
}
int main(int argc, char *argv[])
{
int i;
for ( i=0; i
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!