Definition | #include <stdio.h> void flockfile(FILE *file); int ftrylockfile(FILE *file); void funlockfile(FILE *file); | |
Beschreibung | Die Funktionen Die Funktion Die Funktion Die Funktion Logisch ist jedem (FILE*)-Objekt ein Sperrenzähler zugeordnet. Dieser Zähler wird implizit mit dem Wert 0 initialisiert, wenn das (FILE*)- Objekt erstellt wird. Die Sperre für das (FI-LE*)-Objekt wird aufgehoben, wenn der Zähler den Wert 0 hat. Wenn der Zähler positiv ist, ist ein einzelner Thread Eigentümer des (FILE*)-Objekts. Wird die Funktion Alle Funktionen, die auf (FILE*)-Objekte verweisen, verhalten sich, als ob sie intern | |
0 | x | |
Returnwert |
| |
| Kein Returnwert | |
|
| |
| 0 | bei Erfolg. |
|
| wenn keine Sperre aktiviert werden kann. |
Hinweise | Bei Echtzeitanwendungen kann es durch die Verwendung von FILE-Sperren zur Umkehrung von Prioritäten kommen. Das Problem tritt auf, wenn ein Thread hoher Priorität ein FILE-Objekt „sperrt“, das gerade von einem Thread niedriger Priorität „entsperrt“ wird, aber der Thread niedriger Priorität wird von einem Thread mittlerer Priorität vorzeitig angehalten. Diese Situation führt zur Umkehrung der Prioritäten; ein Thread hoher Priorität wird von Threads niedrigerer Priorität für unbegrenzte Zeit blockiert. Entwickler von Echtzeitanwendungen müssen beim Systemdesign die Möglichkeit derartiger Umkehrungen von Prioritäten berücksichtigen. Sie können eine Reihe von Gegenmaßnahmen gegen derartige Situationen treffen, indem beispielsweise kritische Codeabschnitte, die durch FILE-Sperren geschützt werden, mit hoher Priorität ausgeführt werden, so dass ein Thread während der Ausführung kritischer Codeabschnitte nicht vorzeitig angehalten werden kann. | |
Siehe auch |
|