Função preada c

Função preada c
Na linguagem de programação C, o objetivo do pread () A função é ler o número especificado de bytes (n) de entrada, que são indicados pelo descritor de arquivo, na área de buffer definida da memória. O pread () função faz a mesma coisa que o ler() método, mas começa a ler de um lugar específico no arquivo, em vez de atualizar o arquivo inteiro com o ponteiro do arquivo. A posição do ponteiro do arquivo não é afetada. No entanto, o valor de deslocamento é utilizado para especificar o local inicial do arquivo. Devemos examinar como essa função opera para ver isso.

Antes de irmos mais longe, precisamos entender a sintaxe da função Pre -PAD e seus arquivos de cabeçalho necessários para esta ilustração. O unistd O arquivo de cabeçalho é usado para trabalhar com a função Pre -AD. Então, aqui está o código a ser colocado no arquivo de linguagem de programação C:

#incluir

O pread () a função contém os mesmos três parâmetros iniciais que o ler() função, e o quarto parâmetro é deslocado para a posição especificada dentro do arquivo. Qualquer tentativa de executar o pread () A função em um arquivo que não pode concluir uma ação de busca resultará em um erro. Aqui está a sintaxe da função pret:

ssize_t pret (int file_descriptor, buffer void *, size_t no_of_n_bytes, off_t offset);

Esta função retorna um número inteiro não negativo, indicando que ela lê com sucesso o número especificado de bytes retornados por esta função. Se ele retornar um valor negativo, não lê o número especificado de bytes. Ele definiu o errno para Ebadf (o que significa que o descritor de arquivo não é um arquivo válido ou descritor de soquete), Econnreset (um colega forçou o término de uma conexão), Efault, Enobufs (Recursos insuficientes do sistema para terminar a chamada), etc.

Para obter os detalhes de errno, Por favor, faça algumas pesquisas online. A função de leitura não exige autorização para ler um arquivo do sistema de arquivos ou da rede.

Exemplo 1

O exemplo abaixo abre um arquivo e lê dados dele. Para iniciar este tutorial, inicie um terminal em Linux, Unix ou qualquer outro sistema operacional que você deseja. Então, como mostrado abaixo, vá do diretório atual para outro diretório de trabalho apropriado ou uma pasta "obras" no nosso caso. Use o comando "LS" para exibir quase todos os arquivos e diretórios no diretório de trabalho. No editor do VIM, abra ou crie um novo arquivo intitulado “pret.C ”, um arquivo de linguagem de programação C.

Estamos usando o editor do VIM para abrir e criá -lo. No entanto, você pode usar o editor que desejar, como nano, texto, etc. Você pode ver que temos um novo.TXT Arquivo nesta lista de diretórios. Este arquivo será utilizado em nosso código C agora. Veja a tela terminal a seguir para visualizar a saída:

Os arquivos de cabeçalho estão incluídos nas três primeiras linhas. Depois disso, o método principal começa com sua primeira linha declarando duas variáveis ​​inteiras, eu.e., num e FileDescriptor. Depois disso, definimos o deslocamento para 5. Definimos uma matriz de caracteres "buffer" e definimos o valor como "TEXT TEXT" na terceira linha da função principal. Estamos fornecendo ao usuário acesso somente leitura ao novo.TXT arquivo na expressão condicional com a ajuda de um abrir() função.

A função aberta está aqui para retornar um valor de descritor que é registrado na variável FileDescriptor. Se o descritor receber o valor menor que 0, o perror () A função será executada para lançar um erro. Na declaração else, usamos a função prefadora para transmitir os valores das variáveis ​​e a função Sizeof para diminuir o tamanho do buffer se o descritor obtiver o valor maior que 0. A declaração de impressão exibiu a saída.

O seguinte é o conteúdo do novo.arquivo txt. O texto do buffer está na terceira linha, que é o ponto de leitura do deslocamento. Veja a tela terminal a seguir para visualizar a saída:

Agora, use o compilador C para compilar o pré -enlouquece.c arquivo. Usamos o compilador GCC para a compilação e execução do código C. No terminal, digite “GCC” e insira o nome do arquivo C necessário, seguido pelo -o Switch e o nome do arquivo de saída visto na captura de tela a seguir. O compilador exibirá quaisquer erros durante a compilação na janela do terminal. O arquivo de saída necessário é criado se a compilação for bem -sucedida e puder ser encontrada no diretório de trabalho.

A saída pode flutuar dependendo do valor de deslocamento. Da mesma forma, se o valor do buffer for alterado, a saída na tela do terminal mudará sem dúvida. Agora, digite o seguinte comando no prompt de comando para executar o arquivo de saída. Veja a tela terminal a seguir para visualizar a saída:

Agora, usando o editor do VIM, queremos atualizar o pré -enlouquece Arquivo e precisam definir o valor para deslocamento para 8 e para atualizar o buffer, a string como "Animals" em vez de "texto de teste" como o código mostrado na imagem a seguir:

Porque fizemos alterações em nosso arquivo de código do programa, agora precisamos recompilar nosso código. O processo de compilação é o mesmo executado nas etapas anteriores. Aqui está a imagem da nova tela de compilação:

Agora, devemos imprimir a saída na tela usando o saída ou arquivo de objeto Obtivemos após a conclusão do procedimento de compilação. Veja a saída na tela do terminal digitando o seguinte comando. A saída disso é "animal". Veja a seguinte tela Terminal anexada para visualizar a saída:

Conclusão

Este artigo mostrou o uso da função pré -PRED de C para ler os dados de alguns arquivos de texto do nosso sistema Linux em bytes. Nós discutimos como um pread () A função é diferente do simples ler() função devido ao uso de um ponto específico para ler os dados de um arquivo.