在Linux中,EOF(End Of File)是一个关键概念,表示文件或输入流的结束标志。以下是详细解释和应用场景:
read()
返回0或-1
)。Ctrl+D
(Unix/Linux)或Ctrl+Z
(Windows)发送EOF信号。# 输入EOF结束交互式输入(按Ctrl+D)
$ cat > file.txt
Hello World
[Ctrl+D] # 结束输入
# 使用EOF作为分界符传递多行输入
cat << EOF
Line 1
Line 2
EOF # 分界符结束输入
EOF
可替换为任意标识符(如END
)。c
int c;
while ((c = getchar()) != EOF) { // 循环直到EOF
putchar(c);
}
python
while True:
try:
line = input() # 读取输入直到EOF(Ctrl+D)
except EOFError:
break
问题1:Ctrl+D
无效?
Ctrl+D
,或改用Ctrl+C
终止进程。问题2:脚本中<<EOF
报错?
cat <<-EOF # 支持缩进(使用制表符)
Indented text
EOF
问题3:程序无限等待EOF?
feof()
使用不当)。feof()
:while (fgets(buffer, size, stdin) != NULL) { /* 处理输入 */ }
0
字节表示EOF。read()
返回0
表示EOF。通过理解EOF的机制和场景,可以更高效地处理输入流或文件操作。遇到问题时,优先检查输入源和程序逻辑是否正确响应EOF信号。