在C++11之前,errno被定义为全局变量,各个线程共享这同一个变量,因此不能完全准确的获得错误码。
C++11将error定义为thread_local,因此每个线程都有自己的线程局部变量errno,线程间不会产生干扰,所以可以拿到准确的错误码。
在C++11之前,errno被定义为全局变量,各个线程共享这同一个变量,因此不能完全准确的获得错误码。
C++11将error定义为thread_local,因此每个线程都有自己的线程局部变量errno,线程间不会产生干扰,所以可以拿到准确的错误码。