_lock_file

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Bloquea un FILE objeto de garantizar la coherencia de los subprocesos que tengan acceso los FILE objeto simultáneamente.

void _lock_file(  
   FILE* file  
);  

Parámetros

file
Identificador de archivo.

El _lock_file función bloqueos la FILE objeto especificado por file. El archivo subyacente no está bloqueado por _lock_file. Utilice _unlock_file para liberar el bloqueo en el archivo. Las llamadas a _lock_file y _unlock_file deben coincidir con un subproceso.

RutinaEncabezado necesario
_lock_file<stdio.h>

Para obtener más información sobre compatibilidad, vea Compatibility en la introducción.

// 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  

System::IO::FileStream::lock

Control de archivos
_creat, _wcreat
_open, _wopen
_unlock_file

Mostrar: