Was bedeutet diese if-Abfrage?
-
if ((status & 255) > 1)
Diese wurde nach dem Aufruf von 'wait' gemacht. Mir ist klar, dass es sich um eine bitweise Verknüpfung handelt. Wofür steht aber die 255 genau? Hat dies etwas mit den Makros WIFSIGNALED, usw. zu tun?
-
255 sind einfach alle Status-Bits, die if() Abfrage schlägt also an, wenn /irgendein/ Statusflag gesetzt ist.
-
Klingt natürlich logisch. Vielen Dank!
-
wobei der status von wait() ein int ist, es werden also nicht alle bits geprüft sondern nur 8.
Womöglich macht die if-Abfrage das selbe wie eines der in man: wait(2) beschriebenen Macros... müsste man sich die mal angucken.
-
darthdespotism schrieb:
die if() Abfrage schlägt also an, wenn /irgendein/ Statusflag gesetzt ist.
fast. das niederwertigste wird ignoriert.
-
corrector schrieb:
darthdespotism schrieb:
die if() Abfrage schlägt also an, wenn /irgendein/ Statusflag gesetzt ist.
fast. das niederwertigste wird ignoriert.
Wie kommst du denn darauf? 255==0xFF - und das erfasst die untersten 8 Bit des Wertes.
-
CStoll schrieb:
Wie kommst du denn darauf? 255==0xFF - und das erfasst die untersten 8 Bit des Wertes.
Das Ergebnis wird aber auf > 1 geprüft.