Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 当收到信号时,睡眠功能将中止?_C_Sleep_Signals - Fatal编程技术网

C 当收到信号时,睡眠功能将中止?

C 当收到信号时,睡眠功能将中止?,c,sleep,signals,C,Sleep,Signals,我想知道为什么,在我看来,无论输入多少次Ctrl+C,程序都应该在10秒后终止 sleep()是在中断时不会重新启动的函数之一 有趣的是,它也不会像人们预期的那样返回EINT 相反,它在剩余的睡眠时间内返回成功 见: 有关中断时不重新启动的其他API的详细信息 #include <signal.h> #include <stdio.h> void ints(int i ) { printf("ints \n"); } int main(void) {

我想知道为什么,在我看来,无论输入多少次Ctrl+C,程序都应该在10秒后终止

sleep()是在中断时不会重新启动的函数之一

有趣的是,它也不会像人们预期的那样返回EINT

相反,它在剩余的睡眠时间内返回成功

见: 有关中断时不重新启动的其他API的详细信息

#include <signal.h>
#include <stdio.h>

void ints(int i )
{
   printf("ints \n");
}


int main(void)
{
    signal(SIGINT, ints);
   sleep(10);  
}
^ints