2009-01-16 16 views

Odpowiedz

34

Jeśli standardowa biblioteka jest wielowątkowa, prawdopodobnie ma numer #define, który zmienia errno w wywołanie funkcji, które zwraca wartość zwracaną przez lokalny błąd wątku. Jednak, aby go użyć, zwykle musi zawierać <errno.h>, zamiast polegać na deklaracji extern.

Znalazłem artykuł Thread-safety and POSIX.1, który odnosi się do tego właśnie pytania.

+0

Dzięki! Szybkie sprawdzenie w /usr/include/bits/errno.h potwierdziło, że errno jest rzeczywiście zdefiniowane jako wątek podczas używania wątków na mojej maszynie Ubuntu. –

16

man errno mówi:

errno jest definiowana przez standard ISO C być modyfikowalny lwartość od typu int, i nie musi być wyraźnie deklarowane; errno może być makrem. errno jest wątkiem lokalnym; ustawienie go w jednym wątku nie wpływa na jego wartość w żadnym innym wątku.

Powiązane problemy