您的位置:首页 > 运维架构 > Linux

学习Linux之出错处理

2011-10-16 15:11 288 查看
errno.h头文件中,定义了errno:当API调用出错时,errno说明出错的具体原因

可简单地将errno理解成整型数据

出错信息转换成可读字符串

#include<string.h>
char* strerror(int errno);


以前的定义:extern int errno; 不是线程安全的
多线程环境(/usr/include/bits/errno.h中41~49行):
extern int *__errno_location();
#define errno (*__errno_location())


在头文件中,如果没有定义"__ASSEMBLER__" 且没有定义"_LIBC" 或定义了"_LIBC_REENTRANT"
errno才能用于多线程

默认情况下,这些符号定义了吗?

默认情况,这3个符号一个都没有定义
保险起见,可以定义_LIBC_REENTRANT
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 多线程 api