Oharra
Baimena behar duzu orria atzitzeko. Direktorioetan saioa has dezakezu edo haiek alda ditzakezu.
Baimena behar duzu orria atzitzeko. Direktorioak alda ditzakezu.
Bloquea un objeto FILE para garantizar la coherencia de los subprocesos que simultáneamente tienen acceso al objeto FILE.
Sintaxis
void _lock_file( FILE* file );
Parámetros
file
Identificador de archivo.
Comentarios
La función _lock_file bloquea el objeto FILE especificado por file. El archivo subyacente no está bloqueado por _lock_file. Use _unlock_file para liberar el bloqueo en el archivo. Las llamadas a _lock_file y _unlock_file deben coincidir en un subproceso.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Requisitos
| Routine | Encabezado necesario |
|---|---|
_lock_file |
<stdio.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
// crt_lock_file.c
// This example creates multiple threads that write to standard output
// concurrently, first with _file_lock, then without.
#include <stdio.h>
#include <process.h>// _beginthread
#include <windows.h>// HANDLE
void Task_locked( void* str )
{
for( int i=0; i<1000; ++i )
{
_lock_file( stdout );
for( char* cp = (char*)str; *cp; ++cp )
{
_fputc_nolock( *cp, stdout );
}
_unlock_file( stdout );
}
}
void Task_unlocked( void* str )
{
for( int i=0; i<1000; ++i )
{
for( char* cp = (char*)str; *cp; ++cp )
{
fputc( *cp, stdout );
}
}
}
int main()
{
HANDLE h[3];
h[0] = (HANDLE)_beginthread( &Task_locked, 0, "First\n" );
h[1] = (HANDLE)_beginthread( &Task_locked, 0, "Second\n" );
h[2] = (HANDLE)_beginthread( &Task_locked, 0, "Third\n" );
WaitForMultipleObjects( 3, h, true, INFINITE );
h[0] = (HANDLE)_beginthread( &Task_unlocked, 0, "First\n" );
h[1] = (HANDLE)_beginthread( &Task_unlocked, 0, "Second\n" );
h[2] = (HANDLE)_beginthread( &Task_unlocked, 0, "Third\n" );
WaitForMultipleObjects( 3, h, true, INFINITE );
}
...
First
Second
First
Second
Third
Second
Third
Second
...
FSiercsotn
dF
iSrescto
nFdi
rSsetc
oFnidr
sSte
cFoinrds
tS
eFciornsdt
Consulte también
Control de archivos
_creat, _wcreat
_open, _wopen
_unlock_file