如何解决在 C 中的无效用户输入时应该返回哪个 errno?
假设我有一个 C 语言程序,我要求用户输入一个 1 到 3 之间的数字。如果用户选择了一个超出范围的数字,那么 errno 最适合在我的函数中返回?
解决方法
我不会将 errno 用于像这样的简单的面向用户的功能。 errno 主要用于报告低级 I/O、进程和其他操作系统错误的系统调用。它不是为糟糕的键盘输入、不正确的文件内容或超出范围的值而设计的。当用户库使用它时,通常是当他们将内部系统错误转发给调用者并且不想费心创建一个不透明的错误机制来包装 errno 时。
例如,JSON 库或 TLS 加密库可能会从它们执行的任何失败的 I/O 调用中转发 errno 值。多处理库可能会从失败的 fork/clone 系统调用转发 errno 值。
也就是说,如果您仍然想使用 errno,EINVAL Invalid Argument
是合理的。
没有“最合适的”错误编号,本身。
0
表示没有错误。任何非 0
表示存在错误。但是因为每个程序都是独一无二的,可能与该程序相关的错误也是独一无二的。
作为程序员,您确定错误代码的含义,然后通过提供文档将其传达给最终用户。真的就是这么简单(而且灵活)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。