EOT和EOF之间的区别

628

我知道EOT是ASCII码4,而EOF则编码为-1(至少在C中)。在我发现EOF映射到-1之前,我认为它只是EOT的同义词。为什么将EOF映射为-1而不是EOT?据我所知,它们都做相同的事情,即终止文件流。我可以辨别的唯一区别是EOT还在bash shell中终止了命令。我想对这两个代码之间的确切技术差异进行描述。

用户41515

通常,EOF不是字符。这是没有角色的。

如果程序在默认模式下以规范模式在终端上运行(即,仅使用stdio的普通C程序),它将永远不会看到ASCII字符EOT。终端驱动程序会识别该字符并创建一个EOF条件(该条件在低电平时是的返回值0 read())。stdio库将该EOF条件转换为适合所讨论函数的返回值(的EOFgetchar(),的空指针fgets()等)。

EOF的数值与C库中的其他地方无关,它不影响您对EOF条件含义的理解。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章