学习Linux之出错处理

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
个人分类: Linux
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭