gpt4 book ai didi

c - 如何捕获Control+D信号?

转载 作者:太空宇宙 更新时间:2023-11-04 12:46:19 25 4
gpt4 key购买 nike

我想在我的程序中捕获Ctrl+D 信号并为它编写一个信号处理程序。我怎样才能做到这一点?我正在使用 C 并使用 Linux 系统。

最佳答案

正如其他人已经说过的,要处理 Control+D,请处理“文件结尾”。

Control+D 是用户与伪文件(您将其视为标准输入)之间的一种通信。它并不具体表示“文件结尾”,而是更普遍的意思是“刷新我目前输入的输入”。刷新意味着程序中对 stdin 的任何 read() 调用都会返回自上次刷新以来键入的输入长度。如果该行不为空,尽管用户还没有键入“return”,但您的程序可以使用输入。如果该行为空,则 read() 返回零,这被解释为“文件结束”。

所以当使用Control+D结束一个程序时,它只在一行的开头起作用,或者如果你做两次(第一次刷新, read() 第二次返回零)。

试一试:

$ cat
foo
(type Control-D once)
foofoo (read has returned "foo")
(type Control-D again)
$

关于c - 如何捕获Control+D信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38627655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com