Leia a chamada do sistema em C

Leia a chamada do sistema em C

Uma chamada do sistema é um método para o software se comunicar com o sistema operacional. Quando o software executa uma chamada de sistema, ele envia a solicitação ao kernel do sistema operacional. Para ler por um descritor de arquivo, você pode usar a função do sistema read (). Cada processo tem sua tabela de descritores de arquivos pessoais no sistema operacional. A única diferença entre read () e write () é que read () lê dados do arquivo referido pelo descritor de arquivo. O tempo de leitura do arquivo é atualizado após uma leitura bem -sucedida ().

Sintaxe

# ssize_t leia (int fd, const void *buf, size_t count);

O descritor de arquivo é o primeiro argumento. O buffer é o segundo argumento. Finalmente, a terceira opção especifica quantos bytes você considera ler. Bytes é apenas o volume de dados para copiar, e o buffer é o endereço do espaço de memória onde os dados devem ser escritos. O resultado de retorno representa a quantidade de dados escritos em bytes; Se varia de bytes, algo parece estar errado. Se o valor for negativo, a chamada do sistema abortará.

Pré-requisitos

O compilador GCC é necessário para compilar o código que contém uma chamada do sistema read (). Para executar e montar o código da linguagem C, precisaremos instalar um pacote de compiladores em nossa máquina. Então, precisaremos instalar o compilador GCC também. Você pode instalá -lo com o comando apresentado abaixo em um terminal Linux, como mostrado abaixo. Ele será instalado em apenas alguns momentos, e você poderá simplesmente escrever e executar códigos C em arquivos.

Ao pressionar a tecla Enter, o compilador GCC será instalado. Levará alguns momentos antes de pedir para você dizer sim ou não. Se você escolher sim, ele começará a exibir a saída do compilador GCC. Utilize as instruções abaixo recorrentes para instalar o GCC em seu sistema.

$ sudo apt install gcc

Primeiro exemplo de read () chamada do sistema em c

Vamos começar com read () para entender melhor isso. Primeiro, você deve usar o editor GNU do Shell para gerar um arquivo do tipo C. Tente executar a consulta simples abaixo no terminal para isso.

$ nano read1.c

Levará um pouco de tempo para o comando mencionado acima abrir, mas uma vez que o fizer, você poderá usá-lo imediatamente. Ele lança seu Ubuntu 20.04 GNU Editor imediatamente. O editor GNU aparecerá como mostrado na imagem anexada abaixo. Agora, escreva o código exibido no editor.

A chamada do sistema read () recebe a entrada do usuário do teclado que é o descritor de arquivo como 0 e o coloca no buffer "Buff", que é apenas uma matriz de caracteres. Só pode ler até 10 bytes por vez. Somente as 10 primeiras letras serão lidas, independentemente de quanto o usuário entra. Por fim, usando a chamada do sistema write (), os dados são exibidos na janela.

Na tela, ele imprime os mesmos 10 bytes que do buffer do descritor de arquivo 1. Agora você deve compilar o código mostrado acima. Precisamos usar o compilador GCC para a compilação de código. Para compilar o “Read1.Arquivo C ”, execute o comando GCC abaixo. Retorne ao console e escreva o comando:

$ gcc read1.c

Agora, devemos executar este código usando o./a.comando fora no terminal, como visto abaixo.

$ ./a.fora

De acordo com o programa, a saída é exibida na captura de tela acima ligada.

Segundo exemplo de read () chamada do sistema em c

Você não pode prever o quanto o usuário entraria como entrada. Como resultado, o terceiro argumento para o sistema write () não pode ser usado para fornecer os bytes certos. O resultado pode diferir do que você esperava. Lembre -se de que read () retorna se for bem -sucedido. Para demonstrar esse conceito, estamos executando este exemplo. Agora use novamente o editor GNU do Shell para gerar um arquivo do tipo C. Tente executar a consulta simples abaixo no terminal para isso.

$ nano Read.c

Levará um pouco de tempo para o comando mencionado acima abrir, mas uma vez que o fizer, você poderá usá-lo imediatamente. Ele lança seu Ubuntu 20.04 GNU Editor imediatamente. O editor GNU aparecerá como mostrado na imagem anexada abaixo. Agora, escreva o código exibido no editor.

Neste código, utilizamos a variável nread para manter o número de bytes que são lidos pelo sistema Read () em C e usamos a variável em write () para exibir a mesma quantidade de bytes na janela. Agora você deve compilar o código mostrado acima.

Precisamos usar o compilador GCC para a compilação de código. Para compilar o “Leia.Arquivo C ”, execute o comando GCC abaixo. Retorne ao console e digite o comando:

$ gcc leia.c

Depois que o código for compilado, execute este código usando o ./a.comando fora no terminal, como visto abaixo.

$ ./a.fora

De acordo com o programa, a saída é exibida na captura de tela acima ligada.

Conclusão

Para compreender o conceito do sistema read () chamado no Ubuntu, exploramos alguns exemplos simples e lineares em c. Também abordamos como configurar o compilador GCC para compilação de código. Espero que agora você possa simplesmente usar o sistema read () para construir seu código no Ubuntu 20.04.