errno

errno用于获取系统最后一次出错的错误代码。在C++中,errno其实是宏

// windows
#define errno (*_errno()) // linux
#define errno (*__errno_location ())

errno是线程安全的

在C++98中虽然没有规定这一点,但具体实现中基本都是线程安全的,POSIX.1c就规定errno是线程局部的,比如linux中对errno的定义为(注意这里#不是注释而是将预处理命令分开了):

# ifndef __ASSEMBLER__
/* Function to get address of global `errno' variable. */
extern int *__errno_location (void) __THROW __attribute__ ((__const__)); # if !defined _LIBC || defined _LIBC_REENTRANT
/* When using threads, errno is a per-thread value. */
# define errno (*__errno_location ())
# endif
# endif /* !__ASSEMBLER__ */
#endif /* _ERRNO_H */

在C++11标准中规定了errno是线程局部的。

最新文章

  1. bootstrap-sidebar,后台边栏折叠功能
  2. 实验9:Problem G: 克隆人来了!
  3. LoadRunner检查点
  4. 非常好的Java反射例子
  5. Form_Form Builder编译fmb/library/menu方式总结(汇总)
  6. HDU 1392 Surround the Trees 构造凸包
  7. spark1.1.0源码阅读-taskScheduler
  8. 《零基础学习Python》01
  9. VirtualBox详细教程
  10. cURL安装和使用笔记
  11. KERMIT,XMODEM,YMODEM,ZMODEM传输协议小结(转)
  12. 根据HTML5的新方法 drag & drop 方法实现表格拖拽实例
  13. ASP .NetCore 部署500错误 查看异常详情
  14. 解决scipy无法正确安装到virtualenv中的问题
  15. leetcode240
  16. Docker数据卷容器备份、恢复
  17. Sharc FLAGS I/O Register(flag0~3)
  18. Shell脚本编程(二):shell变量
  19. Windows安装python3.x后,pip list警告!DEPRECATION: The default format will switch to columns in the future.
  20. AuthenticationManager、ProviderManager

热门文章

  1. java集合类源码学习二
  2. python3 变量
  3. [LeetCode]547. 朋友圈(DFS)
  4. 【Flutter 实战】路由堆栈详解
  5. 在windows下使用pip安装python包遇到缺失stdint.h文件的错误
  6. 使用wordpress搭建的一个微信小程序
  7. Git+Gitlab+Ansible剧本实现一键部署动态网站(5)
  8. hystrix文档翻译之概述
  9. 腾讯云ClickHouse如何实现自动化的数据均衡?
  10. php第一天-分支结构,循环结构,特殊的流程控制语句