当前位置: 首页 > wzjs >正文

美橙互联送的网站源代码丽江市住房和城乡建设局网站

美橙互联送的网站源代码,丽江市住房和城乡建设局网站,做文章网站,asp.net网站开发实例一.概述 1.介绍 在 C 语言中&#xff0c;errno是一个用于标识程序运行时错误的全局变量。当系统调用或库函数执行失败时&#xff0c;通常会设置errno以指示具体的错误类型。 2.errno的基本定义 头文件&#xff1a;#include <errno.h> 类型&#xff1a;int 用途&#x…

一.概述

 1.介绍

    在 C 语言中,errno是一个用于标识程序运行时错误的全局变量。当系统调用或库函数执行失败时,通常会设置errno以指示具体的错误类型。

 

2.errno的基本定义

头文件:#include <errno.h>

类型:int

用途:存储最近一次系统调用或库函数失败的错误码

3.常见错误码及其含义

以下是 POSIX 标准定义的部分常见错误码(完整列表可通过man errno查看):

二.errno使用

1.检查函数返回值

大多数库函数在失败时会返回特殊值(如NULL、-1),并设置errno:

#include <stdio.h>

#include <errno.h>

#include <string.h>

int main() {

    FILE* file = fopen("nonexistent.txt", "r");

    if (file == NULL) {

        // 检查errno并处理错误

        if (errno == ENOENT) {

            printf("文件不存在\n");

        } else if (errno == EACCES) {

            printf("权限不足\n");

        } else {

            printf("未知错误: %d\n", errno);

        }

    }

    return 0;

}

2.使用错误处理函数

C 标准库提供了两个常用函数来处理errno:

#include <stdio.h>

#include <stdlib.h>

#include <errno.h>

#include <string.h>

int main() {

    // 1. perror(): 打印自定义消息+系统错误信息

    FILE* file = fopen("nonexistent.txt", "r");

    if (file == NULL) {

        perror("打开文件失败");

        // 输出示例: "打开文件失败: No such file or directory"

    }

    // 2. strerror(): 返回错误码对应的字符串描述

    int error_code = errno;

    printf("error_code=%d; 错误描述: %s\n", error_code,strerror(error_code));

    // 输出示例: "错误描述: No such file or directory"

    return 0;

}

3.自定义错误处理函数

可以封装错误处理逻辑,提高代码可读性:

#include <stdio.h>

#include <stdlib.h>

#include <errno.h>

#include <string.h>

// 自定义错误处理函数

void handle_error(const char* msg) {

    fprintf(stderr, "%s: %s\n", msg, strerror(errno));

    exit(EXIT_FAILURE);

}

int main() {

    FILE* file = fopen("nonexistent.txt", "r");

    if (file == NULL) {

        handle_error("无法打开文件"); // 输出: "无法打开文件: No such file or directory"

    }

    return 0;

}

4.线程安全

(1)在多线程环境中,errno通常是线程局部的(每个线程有自己的errno副本),避免线程间干扰。

(2)及时检查

原因:成功的函数调用可能会重置errno,因此必须在函数失败后立即检查。

示例:

int value = atoi("not_a_number");

if (value == 0) {

    // 错误!无法判断是输入"0"还是转换失败

    if (errno == EINVAL) {

        // 这里的检查可能无效,因为atoi成功时可能重置errno

    }

}

(3)重置errno

在关键调用前手动将errno置零,确保错误码来自当前操作:

errno = 0;

int fd = open("file.txt", O_RDONLY);

if (fd == -1) {

    // 此时errno一定来自open()

    perror("打开文件失败");

}

三.总结

1.errno是 C 语言中处理系统错误的核心机制,使用时需注意:

先检查函数返回值,再判断errno;

及时处理错误,避免被后续操作覆盖;

结合perror()或strerror()提高错误信息可读性;

多线程环境中无需担心线程间干扰。


文章转载自:

http://3WdEBcnG.xqspn.cn
http://4rr7HvvV.xqspn.cn
http://bz8Xed5f.xqspn.cn
http://h52eM97H.xqspn.cn
http://eD0kCRxa.xqspn.cn
http://Y62vMiFc.xqspn.cn
http://A4XRvOnP.xqspn.cn
http://HTZ3Wor5.xqspn.cn
http://gwrCfsyJ.xqspn.cn
http://pDPQswGW.xqspn.cn
http://mGe6iINY.xqspn.cn
http://oHgbLj4t.xqspn.cn
http://25HtjxCg.xqspn.cn
http://VYtZ6SgD.xqspn.cn
http://nt1E0WU1.xqspn.cn
http://9krCrN4k.xqspn.cn
http://1szdfQY9.xqspn.cn
http://O7Osc6WZ.xqspn.cn
http://w5dFmDws.xqspn.cn
http://xyjileO5.xqspn.cn
http://hGKvsLHK.xqspn.cn
http://Xb896vnR.xqspn.cn
http://hbRwxHfm.xqspn.cn
http://4x1JnKkw.xqspn.cn
http://Y6MgPtDP.xqspn.cn
http://k4Slq76W.xqspn.cn
http://nurBSbiK.xqspn.cn
http://i1khmJ6a.xqspn.cn
http://Lf3n0S4I.xqspn.cn
http://GaWLunJe.xqspn.cn
http://www.dtcms.com/wzjs/611539.html

相关文章:

  • 网站建设要钱么简单的管理系统
  • 做哪些网站好html自学怎么入门
  • 网站正在建设中模板下载广州营销型网站建设培训
  • 福田网站设计处理广州静态管理
  • 怎么做点击文字进入的网站wordpress文章加密
  • 做百度推广需要有网站吗浙江高速建设公司网站
  • 云图书馆平台网站建设大连建设网网址
  • 公司做网站的费用怎么记账全国企业信息网查询平台官网
  • 西安建站模板郴州市做网站
  • 科技馆网站建设方案天津高端模板建站
  • 舟山网站开发南昌网站建设的流程
  • 网站关键词如何收录常用网站建设软件
  • 网站开发的未来发展趋势最新的新闻 最新消息
  • 云南商城网站建设网站域名如何使用
  • 如何建设网站安全建工行业建设标准网站
  • 以投资思维做网站柳江企业网站建设公司
  • 深圳网站备wordpress主题 时间轴
  • 西安市建设干部学校网站最新网络游戏排行榜2021前十名
  • 苏州建网站的公司一站式服务公司推广文案模板
  • 婚礼摄影作品网站ic外贸网站建设
  • 家居企业网站建设资讯网站制作北京网站建设公司哪家好
  • 网站推广公司卓立海创wordpress常用主题修改
  • 做网站是什么时候分页wordpress首页友情链接插件
  • 怎么建淘宝客网站贵州互联网公司
  • 南宁建站热搜页面设计在线
  • 经营一个网站要怎么做四川建设网电话号码是多少
  • 简易静态网站制作流程图wordpress安装dplayer
  • 郑州做网站排名杭州自适应网站建设
  • 创建平台网站下载链接如何在招聘网站上做薪酬统计
  • 视频网站代理响应式网站psd尺寸