ano*_*nol 7 c posix eof language-lawyer
POSIX定义EOF为扩展为负值的宏:
标头应定义以下宏,该宏将扩展为具有int类型和负值的整数常量表达式:
EOF
文件结束返回值.
在每一个我能找到的实现,EOF是始终定义为-1.
虽然标准确实允许不同的值,但我找不到任何特定的实现,并且我想找到一个用于测试目的.1
1 我可以自己实现,但我的真正目的是"在野外找到它",由于不可能证明它不存在,这是我能想到的下一个最好的事情.
已经提出了一个几乎相同的问题,但最后提出了两个问题,接受的答案只回答了第二个问题(约WEOF).一个不同的用户回答了第一个问题,但由于问题仅限于普通的C环境,否则可以说是正确的:-1可能用于任何具有小字符类型的合理实现.
由于我的问题是关于存在,实际回答它的唯一方法是提供一个例子,所以我将重新说明它:请提供一个现有实现的例子EOF != -1.无论是newlib还是musl,PDP或VAX,Plan 9或Hurd,libc /硬件/操作系统与POSIX兼容或ISO C兼容的libc的任何组合都是有效的.
懒惰的周日,所以我找到了这个https://github.com/xinu-os/xinu,它附带了这个https://github.com/xinu-os/xinu/blob/master/include/stddef.h列出了这个
#define EOF (-2) /**< End-of-file (usually from read) */
Run Code Online (Sandbox Code Playgroud)
:-)
Xinu 的来源可以追溯到 1987 年: https: //www.tuhs.org//cgi-bin/utree.pl? file=Xinu7 不幸的是,它似乎被-1用作EOF. :-(
| 归档时间: |
|
| 查看次数: |
272 次 |
| 最近记录: |