errno
少于1分钟
移植方法
- 设置Picolibc的配置
newlib-global-errno
为true
,不使用TLS
机制来实现errno
; - 设置Picolibc的配置
errno-function
为'__errno'
; - XWOS在每个线程对象结构体中定义了一个
__errno
变量,并重新覆盖实现了int * __errno(void)
函数, 返回 当前 线程对象的__errno
的地址:
int * __errno(void)
{
xwos_thd_d thdd = xwos_cthd_self();
return &thdd.thd->osthd.libc.error_number;
}
- 当使用
<errno.h>
中的errno
宏时,就可获取线程自身的__errno
,不再依赖libgloss。