1
feather12315 2017-12-23 11:37:26 +08:00 via Android
第二次错误会覆盖第一次的,我没记错的话
|
2
sfqtsh 2017-12-23 11:47:54 +08:00 via Android
一般
#if !defined _LIBC || defined _LIBC_REENTRANT /* When using threads, errno is a per-thread value. */ #define errno (*__errno_location ()) #endif 才能保证没问题 |
3
pkookp8 OP @sfqtsh 看了下 man errno 说是线程安全的,glibc 里也定义了__thread,猜测是每个线程都有一个 errno
但 c 库是如何寻找到本线程的 errno 的,看不懂 |
4
pkookp8 OP @feather12315 如上。应该是一个线程中,新的会覆盖旧的。多线程好像不会,待会儿试试
|