Compartilhar via


ReadFile

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Esta função lê dados de um arquivo, começando a posição indicado pelo ponteiro de arquivo. Após conclusão de operação de leitura, o ponteiro arquivo é ajustado pelo número de bytes ler.

Syntax

BOOL ReadFile(
  HANDLE hFile,
  LPVOID lpBuffer,
  DWORD nNumberOfBytesToRead,
  LPDWORD lpNumberOfBytesRead,
  LPOVERLAPPED lpOverlapped
);

Parameters

  • hFile
    [no] Identificador para o arquivo seja ler. O identificador de arquivo deve ter sido criado com acessar GENERIC_READ para o arquivo. Este parâmetro não pode ser um identificador Soquete.
  • lpBuffer
    [out] Ponteiro para a reserva que recebe os dados ler a partir de arquivo.
  • nNumberOfBytesToRead
    [no] Número de bytes a ser ler a partir de arquivo.
  • lpNumberOfBytesRead
    [out] Ponteiro para o número de bytes ler. Essa função configura esse valor como zero antes de levar ação ou verificando erros.
  • lpOverlapped
    [no] Sem suporte. Definir como NULL.

Return Value

Nonzero indica sucesso. Zero indica falha. Para informações de erro estendidas get, chamar GetLastError.

Se o valor de retorno é diferente de zero e o número de bytes ler for zero, o ponteiro arquivo foi além de atual final do arquivo no tempo da operação de leitura.

Remarks

Se parte o arquivo está bloqueado por outro processo e a operação de leitura se sobrepõe a parte bloqueada, essa função falhará.

Acessar o buffer de entrada enquanto um operação de leitura está usando a reserva pode causar dano dos dados ler em que reserva. Aplicativos não devem ler a partir, Gravação para, reallocate ou livre de buffer de entrada que está usando um operação de leitura até as operação de leitura completa.

Durante a leitura de um dispositivo de comunicações, o comportamento desta função é regido pela atual tempos limite de comunicação como definir e recuperados utilizando o SetCommTimeouts e as funções GetCommTimeouts. Resultados imprevisíveis podem ocorrer se você não conseguir para definir os valores tempo limite. Para obter mais informações sobre tempos limite de comunicação, consulte COMMTIMEOUTS.

Esta função pode falhar e retornar ERROR_INVALID_USER_BUFFER ou ERROR_NOT_ENOUGH_MEMORY quando há muitos pendente solicitações assíncrono E/S.

Quando um operação de leitura atingir o final de um arquivo, essa função Retorna TRUE e define *lpNumberOfBytesRead para zero. Windows Embedded CE faz não suporte leitura assíncrona operações em arquivos. O seguinte amostra de código mostra um testar para o final do arquivo:

// Attempt a synchronous read operation.
bResult = ReadFile(hFile, &inBuffer, nBytesToRead, &nBytesRead, NULL) ;
// Check for end of file.
if (bResult &&  (nBytesRead == 0) )
{
   // you are at the end of the file.
}

Requirements

Header winbase.h
Library coredll.lib
Windows Embedded CE Windows CE 1.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

File I/O Functions
CreateFile
WriteFile