Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.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
linux选项,用于在进行系统调用时检测键盘中断_Linux_Keyboardinterrupt - Fatal编程技术网

linux选项,用于在进行系统调用时检测键盘中断

linux选项,用于在进行系统调用时检测键盘中断,linux,keyboardinterrupt,Linux,Keyboardinterrupt,通常,当我在终端运行一个程序时,我可以用控件C停止它。 当我在while循环中编写一个调用操作系统命令的程序时,其余的代码执行得如此之快,以至于除了杀死pid之外,没有办法停止程序。我一直在做的就是增加一秒钟的睡眠时间,但这并不是一个好的实践 while(!phrasespotted){ invoke an operating system command to arecord for 5 secs, during which control C can not stop the pr

通常,当我在终端运行一个程序时,我可以用控件C停止它。 当我在while循环中编写一个调用操作系统命令的程序时,其余的代码执行得如此之快,以至于除了杀死pid之外,没有办法停止程序。我一直在做的就是增加一秒钟的睡眠时间,但这并不是一个好的实践

while(!phrasespotted){
     invoke an operating system command to arecord for 5 secs, during which control C can not stop the program 
     process the audio for phrase spotting 
     sleep(1); //during this I can stop the program in terminal 
}
我应该向我的代码中添加什么,以便它可以在进行系统调用时拾取键盘中断,或者甚至在调用后立即将其注册以停止?
线程是基于捕捉信号的唯一选项吗

你能写一封信吗?如果您正在运行
系统(“arecord…”)那么这不是系统调用。拥有真实的代码可以更容易地理解您的意思。更正后,现在是调用操作系统命令