Eine Race-Condition ist ein unnormales Verhalten, das von einer unerwarteten Abhängigkeit beim Timing von Ereignissen verursacht wird. Mit anderen Worten heißt das, ein Programmierer nimmt irrtümlicher Weise an, dass ein bestimmtes Ereignis immer vor einem anderen stattfindet.
Einige der häufigsten Ursachen für Race-Conditions sind Signale,
Zugriffsprüfungen und das Öffnen von Dateien. Signale sind von Natur aus
asynchrone Ereignisse, deshalb ist besondere Vorsicht im Umgang damit geboten. Das
Prüfen des Zugriffs mittels der Aufrufe access(2)
gefolgt von open(2)
ist offensichtlich nicht atomar.
Benutzer können zwischen den beiden Aufrufen Dateien verschieben. Stattdessen
sollten privilegierte Anwendungen seteuid()
direkt gefolgt
von open()
aufrufen. Auf die gleiche Art sollte eine
Anwendung immer eine korrekte Umask vor dem Aufruf von open()
setzen, um störende Aufrufe von chmod()
zu umgehen.
Zurück | Zum Anfang | Weiter |
Vertrauen | Nach oben | Lokalisierung und Internationalisierung - L10N und I18N |
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.