lock
Nach oben zu io.h - Index
Header-Datei
io.h
Kategorie
Eingabe-/Ausgaberoutinen
Prototyp
int lock(int handle, long offset, long length);
Beschreibung
Legt Sperren für die gemeinsame Nutzung von Dateien fest.
lock stellt eine Schnittstelle für den Betriebssystemmechanismus zur gemeinsamen Nutzung von Dateien zur Verfügung.
In jeder Datei können beliebige, sich nicht überlappende Bereiche mit einer Sperre versehen werden. Programme, die versuchen, Lese- oder Schreiboperationen in einem gesperrten Bereich auszuführen, wiederholen diesen Versuch drei Mal. Wenn alle drei Versuche fehlschlagen, wird die Operation abgebrochen und eine Fehlermeldung ausgegeben.
Rückgabewert
Bei erfolgreicher Ausführung gibt lock 0 zurück. Im Fehlerfall gibt die Funktion lock -1 zurück und weist der globalen Variablen errno den folgenden Wert zu:
EACCES |
Locking violation (Sperrverletzung) |
Beispiel
#include <io.h>
#include <fcntl.h>
#include <sys\stat.h>;
#include <process.h>
#include <share.h>
#include <stdio.h>
int main(void)
{
int handle, status;
long length;
handle = _sopen("c:\\autoexec.bat",
O_RDONLY,SH_DENYNO,S_IREAD);
if (handle < 0)
{
printf("_sopen failed\n");
exit(1);
}
length = filelength(handle);
status = lock(handle,0L,length/2);
if (status == 0)
printf("lock succeeded\n");
else
printf("lock failed\n");
status = unlock(handle,0L,length/2);
if (status == 0)
printf("unlock succeeded\n");
else
printf("unlock failed\n");
close(handle);
return 0;
}
Portabilität
POSIX | Win32 | ANSI C | ANSI C++ |
---|---|---|---|
+ |