Funktion zur überprüfung von funktionswerten
-
@Bushmaster sagte in Funktion zur überprüfung von funktionswerten:
@Wutz sagte in Funktion zur überprüfung von funktionswerten:
Ihr habt alle keine Ahnung - wie kann eine (globale) Variable threadsafe sein, wenn <thread.h>, TLS,... gemäß C-Sprachstandard C99 und höher nur optional ist? -- Genau! Nie.
errno ist nicht für die interprozess-kommunikation geeignet. solange dein programm nur in einem einzigen thread läuft, funktioniert errno. ein multithreading-errno, wenn es denn einer braucht, muss er sich schon selber programmieren. libraries die atomic integers anbieten gibt es ja.
Das ist falsch. Errno ist nicht für die Interprzesskommunikation gedacht. errno ist in jeweils einem Thread gültig.
-
@Wutz: "errno ist threadsafe" hat - außer dir - keiner hier geschrieben (wer lesen kann ist klar im Vorteil)!
Außerdem aus errno:
Note: Until C11, the C standards had contradictory requirements, in that they said that errno is a macro but also that "it is unspecified whether errno is a macro or an identifier declared with external linkage". C11 fixes this, requiring that it be defined as a macro (see also WG14 N1338).
Es ist also seit C11 (also dem bis jetzt aktuellen Standard) auf jeden Fall ein Makro und keine globale Variable (und vorher war es eben ungenau spezifiziert)!
-
@manni66 sagte in Funktion zur überprüfung von funktionswerten:
@Bushmaster sagte in Funktion zur überprüfung von funktionswerten:
@Wutz sagte in Funktion zur überprüfung von funktionswerten:
Ihr habt alle keine Ahnung - wie kann eine (globale) Variable threadsafe sein, wenn <thread.h>, TLS,... gemäß C-Sprachstandard C99 und höher nur optional ist? -- Genau! Nie.
errno ist nicht für die interprozess-kommunikation geeignet. solange dein programm nur in einem einzigen thread läuft, funktioniert errno. ein multithreading-errno, wenn es denn einer braucht, muss er sich schon selber programmieren. libraries die atomic integers anbieten gibt es ja.
Das ist falsch. Errno ist nicht für die Interprzesskommunikation gedacht. errno ist in jeweils einem Thread gültig.
sag ich doch. jeder thread hat sein eigenes errno.
-
@Th69 sagte in Funktion zur überprüfung von funktionswerten:
@Wutz: "errno ist threadsafe" hat - außer dir - keiner hier geschrieben (wer lesen kann ist klar im Vorteil)!
er meint das wohl so, dass ein thread die errno eines anderen threads weder lesen noch ändern kann.