EOF的实际实现不同于-1

EOF的实际实现不同于-1,第1张

概述POSIX将EOF定义为扩展为负值的宏: The header shall define the following macro which shall expand to an integer constant expression with type int and a negative value: EOF End-of-file return value. 在我能找到的每个实现中,EOF始 POSIX将EOF定义为扩展为负值的宏:

The header shall define the following macro which shall expand to an integer constant Expression with type int and a negative value:

EOF

End-of-file return value.

在我能找到的每个实现中,EOF始终定义为-1.

虽然标准确实允许不同的值,但我找不到任何特定的实现,并且我想找到一个用于测试目的.

1我可以自己实现,但我的真正目的是“在野外找到它”,由于无法证明它不存在,这是我能想到的下一个最好的东西.

An almost identical question has already been asked,但最后提出了两个问题,接受的答案只回答了第二个问题(关于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)    */

总结

以上是内存溢出为你收集整理的EOF的实际实现不同于-1全部内容,希望文章能够帮你解决EOF的实际实现不同于-1所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1240612.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存