Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Locks a file, preventing other processes from accessing the file.
void _lock_file(
FILE* file
);
Parameters
- file
File handle.
Remarks
The _lock_file function locks the file specified by file. Locking a file prevents access to the file by other processes. Use _unlock_file to release the lock on the file. Calls to _lock_file and _unlock_file must be matched in a thread. Attempting to lock a file that is already locked or unlock a file that is not locked can result in a deadlock.
Requirements
Routine |
Required header |
|---|---|
_lock_file |
<stdio.h> |
For more compatibility information, see Compatibility in the Introduction.
Example
// crt_lock_file.c
// This program will Lock a file,
// preventing other processes or threads
// from gaining access to the file until
// it's unlocked.
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *pFile = NULL;
char *fileName = "crt_lock_file.txt";
char commandLine[256];
// Open the file in write mode
fopen_s(&pFile, fileName ,"w+");
if (!pFile)
{
printf("Error opening file %s!\n", fileName);
exit(1);
}
// Lock the file.
_lock_file(pFile);
printf("Locking the file %s.\n", fileName);
// Add some data to the file
fprintf(pFile, "The sound of bagpipes in the distant glen...\n");
printf("\nAttempting to access the file from another process:\n");
sprintf_s(commandLine, sizeof(commandLine), "type %s", fileName);
system(commandLine);
// Unlock the file
_unlock_file(pFile);
// Close the file
fclose(pFile);
printf("\nAttempting to access the file again:\n");
system(commandLine);
}
Locking the file crt_lock_file.txt.
Attempting to access the file from another process:
The process cannot access the file because it is being used by another process.
Attempting to access the file again:
The sound of bagpipes in the distant glen...