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。