O idioma C possui duas funções básicas que permitem que você leia os arquivos usando as funções Read () e Fread (). Ele também possui métodos com funções para ler os arquivos personagem por caracteres.
É importante conhecer as funções de processamento de arquivos, seus métodos de chamada, argumentos de entrada e saída, etc., Para usá -los fluentemente porque eles são o recurso disponível para o programador para armazenar e descartar as informações armazenadas no sistema.
Neste artigo da dica do Linux, você aprenderá como usar a função read () para ler os arquivos.
Vamos explicar tudo sobre "ella", sua sintaxe, a chamada do método, os argumentos de entrada e saída, o tipo de dados que cada um deles aceita e como declará -los corretamente.
Em seguida, aplicamos o que aprendemos colocando o uso desse recurso em exemplos práticos.
Para que você esteja plenamente ciente de como usar a função read (), adicionamos uma seção especial que descreve todos os erros que podem ocorrer ao usar essa função, bem como sua detecção e identificação, para que você tenha o necessário técnicas para uma solução rápida em caso de erro.
Sintaxe da função read () na linguagem C
size_t leia (int fd, void *buf, size_t count);Descrição da função read () na linguagem C
A função read () lê o conteúdo do arquivo aberto que é especificado por seu descritor no argumento de entrada "FD". Esta função lê e copia o número de contagem de bytes no buffer que é apontado por buf. O identificador "FD" é um número inteiro que é retornado como resultado da função Open () quando o arquivo é aberto.
Se a função read () retornar com sucesso, ele retornará o número de bytes lido. Um resultado igual a 0 significa que o arquivo é lido até o final e -1 significa que ocorre um erro. O erro específico pode ser identificado recuperando seu código da variável Global Errno. Mais tarde, você encontrará uma seção que descreva os erros que podem ocorrer ao usar a função read () e as técnicas para detectar e identificá -los.
A função read () é declarada no “unistd.H ”cabeçalho. Para usá -lo, você deve incluir este arquivo no seu código da seguinte forma:
#incluirComo ler um arquivo com a função read () na linguagem C
Neste exemplo, explicaremos como abrir e ler um arquivo usando as funções abertas () e read ().
Para esse fim, criamos anteriormente um arquivo de texto com o nome, “Exemplo.txt ”, via Linux Manager e salvou -o no diretório“ documentos ”. Escrevemos o primeiro parágrafo deste artigo.
A primeira etapa no desenvolvimento do código para ler o arquivo é incluir os cabeçalhos necessários e criar uma função principal () que retorne um valor vazio. Definimos o número inteiro "FD" que serve como descritor de arquivo, um buffer de 1024 caracteres chamado "Buff", onde as informações que são lidas pela função Read () são armazenadas. O caminho da matriz armazena o caminho e o nome do arquivo que queremos ler.
Depois de definir as variáveis necessárias, chamamos a função Open () para abrir o arquivo. Chamamos essa função passando a matriz do caminho com o caminho e o nome do arquivo como o primeiro argumento de entrada e especificando a bandeira O_RDONLY como o segundo argumento. Passamos pelo número inteiro "FD" como o argumento de saída em que o Open () retorna o descritor que usamos para ler no arquivo.
Depois de abrir o arquivo, lemos seu conteúdo chamando a função read () e passando o descritor "FD" que é retornado pela função Open () como o primeiro argumento. Passamos o ponteiro para o buffer "Buff" como o segundo argumento em que armazenamos o conteúdo a ser lido. Finalmente, passamos pelo tamanho do buffer, que é 1024 bytes neste caso. Em seguida, usamos a função printf () para exibir o conteúdo armazenado em "Buff" no console de comando.
Aqui está o código completo para este exemplo:
#incluirNa figura a seguir, vemos a compilação e a execução deste código. Como podemos ver, leia () coloca todo o conteúdo do “exemplo.O arquivo txt "em" Buff "e a função printf () imprime -o para o console de comando:
Como detectar e identificar os erros que podem ocorrer ao usar a função read () na linguagem C
O uso de read () pode gerar vários erros. Quando isso acontece, esta função retorna um resultado igual a -1.
A maneira mais fácil de determinar se ocorreu um erro é usar uma condição "se" em que a condição seja o valor de retorno de -1. Agora, vamos ver como você pode usar esse método para determinar se ocorreu um erro:
int n;Se a função read () retornar com um erro, ela transita para a instrução "se" e imprime a mensagem, "ocorreu um erro ao tentar ler o arquivo".
Quando ocorre um erro, um código numérico é armazenado automaticamente na variável Global Errno, que é definida no “errno.H ”cabeçalho. Este código pode ser usado para identificar o erro que ocorreu.
A seguir, é apresentado um trecho com os erros que a função read () pode gerar e que são definidos no “errno.H ”Cabeçalho, juntamente com uma breve descrição de cada erro e o valor inteiro associado:
Definição | Valor em errno | Erro |
Eagin | 11 | Tente novamente. |
Ebadf | 9 | Número do arquivo incorreto. |
Edestaddrreq | 89 | Endereço de destino necessário. |
Efault | 14 | endereço incorreto. |
Efbig | 27 | Arquivo muito grande. |
Eintr | 4 | Chamada de sistema interrompida. |
Einval | 22 | Argumento inválido. |
Eio | 5 | Erro de E/S. |
Eperm | 1 | Operação não permitida. |
A maneira mais fácil de identificar um erro é abrir um interruptor em que a variável errno é a condição de salto e cada caso é uma definição de erro.
Em seguida, vejamos um exemplo em que tentamos entrar em um descritor com um sinal negativo, resultando em um erro. Para identificar um erro, usamos a condição "se" que vimos no trecho anterior. Para identificá -lo, abrimos um interruptor com os três erros mais comuns que essa função pode produzir.
#incluirComo podemos ver na figura a seguir, a função read () retorna um erro quando um descritor inválido é passado como um argumento de entrada. O valor que é recuperado da variável errno é usado como uma condição de salto que nos permite identificar o erro ao entrar no caso do eBadf.
Conclusão
Neste artigo da dica do Linux, mostramos como usar a função read (), uma das funções mais comuns que são implementadas no idioma C para ler os arquivos.
Observamos sua sintaxe e uma seção que descreve sua operação teórica, argumentos de entrada e saída e seus tipos de dados. Posteriormente, implementamos o que aprendemos através de um exemplo prático com código e imagens que mostram como abrir e ler um arquivo usando as funções abertas () e read ().
Para ter os meios necessários para solucionar um possível erro ao usar essa função, adicionamos uma seção especial que explica os métodos que o idioma C fornece para detectar e identificar os erros.