如果您正在编写一个多线程应用程序,该应用程序使用系统/库调用来利用errno指示错误类型,那么有安全的方法可以使用errno吗?如果没有,是否有其他方法可以指示发生的错误类型,而不仅仅是指示发生了错误?
在多线程应用程序中,有没有一种安全地使用errno的方法?[重复]
原标题:
最佳回答
如果你的标准库支持多线程,则它可能有一个#define
,可以将errno
更改为函数调用来返回线程本地的错误返回值。然而,要使用此功能,通常就必须包含<errno.h>
,而不能仅仅依赖于extern声明。
我发现了一篇文章《线程安全和POSIX.1》,它正好回答了这个问题。
问题回答
“man errno” 的意思是:
errno is defined by the ISO C standard to be a modifiable lvalue of type int, and must not be explicitly declared; errno may be a macro. errno is thread-local; setting it in one thread does not affect its value in any other thread.
相关问题
热门标签
- winforms
- combobox
- fogbugz
- java
- date
- internationalization
- asp.net
- iis
- url-rewriting
- urlrewriter
- c#
- enums
- ocaml
- haxe
- algorithm
- string
- viewstate
- .net
- c++
- c
- symbol-table
- mysql
- database
- postgresql
- licensing
- migration
- vb.net
- vb6
- declaration
- vb6-migration
- python
- psycopg2
- backup
- vmware
- virtualization
- gnu-screen
- authentication
- desktop
- excel
- xll
- cultureinfo
- regioninfo
- oracle
- client
- session
- download
- html
- virtual
- constructor
- scenarios
- perl
- full-text-search
- javascript
- ajax
- testing
- oop
- inheritance
- vim
- encapsulation
- information-hiding