_lock_file
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...