跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
C 语言错误代码
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
{{DISPLAYTITLE:C语言错误代码}} '''C语言错误代码'''是程序运行过程中用于标识错误类型的整数值,通常通过函数返回值或全局变量(如<code>errno</code>)传递。它是C语言错误处理机制的核心组成部分,帮助开发者诊断和修复问题。 == 概述 == 在C语言中,错误代码通常以以下形式出现: * '''函数返回值''':许多标准库函数通过返回特定值(如<code>-1</code>、<code>NULL</code>)表示错误。 * '''全局变量<code>errno</code>''':定义在<code><errno.h></code>中,存储最近一次错误的详细代码,需配合<code>perror()</code>或<code>strerror()</code>使用。 == 常见错误代码 == 以下是<code>errno.h</code>中定义的典型错误代码: {| class="wikitable" |+ 标准错误代码示例 ! 错误代码 !! 宏名称 !! 描述 |- | 1 || <code>EPERM</code> || 操作无权限 |- | 2 || <code>ENOENT</code> || 文件或目录不存在 |- | 13 || <code>EACCES</code> || 权限不足 |- | 22 || <code>EINVAL</code> || 无效参数 |} == 错误代码处理示例 == === 通过返回值处理错误 === <syntaxhighlight lang="c"> #include <stdio.h> #include <stdlib.h> int divide(int a, int b, int *result) { if (b == 0) { return -1; // 自定义错误代码 } *result = a / b; return 0; // 成功返回0 } int main() { int res; if (divide(10, 0, &res) != 0) { printf("错误:除数不能为0\n"); } else { printf("结果:%d\n", res); } return 0; } </syntaxhighlight> '''输出:''' <pre> 错误:除数不能为0 </pre> === 使用<code>errno</code>处理系统错误 === <syntaxhighlight lang="c"> #include <stdio.h> #include <errno.h> #include <string.h> int main() { FILE *file = fopen("nonexistent.txt", "r"); if (file == NULL) { printf("错误代码:%d\n", errno); printf("错误信息:%s\n", strerror(errno)); } return 0; } </syntaxhighlight> '''输出(假设文件不存在):''' <pre> 错误代码:2 错误信息:No such file or directory </pre> == 实际应用场景 == === 案例:文件操作错误处理 === 以下代码演示如何结合<code>errno</code>和自定义错误代码: <syntaxhighlight lang="c"> #include <stdio.h> #include <errno.h> #define ERROR_CUSTOM_FILE -100 int read_file(const char *filename) { FILE *file = fopen(filename, "r"); if (!file) { if (errno == ENOENT) { return ERROR_CUSTOM_FILE; // 自定义文件不存在错误 } return errno; // 返回系统错误代码 } // 文件处理逻辑... fclose(file); return 0; } </syntaxhighlight> == 高级主题 == === 错误代码分类 === <mermaid> pie title 错误代码类型分布 "系统错误 (errno)" : 45 "函数返回值错误" : 35 "自定义错误代码" : 20 </mermaid> === 数学公式表示错误码范围 === 标准错误代码通常满足: <math> 1 \leq \text{errno} \leq 255 </math> == 最佳实践 == * 始终检查可能失败的函数返回值 * 使用<code>perror()</code>快速输出可读错误信息 * 自定义错误代码时应避开系统保留值(通常>255) == 参见 == * [[C语言异常处理]] * [[C语言调试技巧]] * [[errno手册页]] [[Category:编程语言]] [[Category:C]] [[Category:C 语言错误处理]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)