Programação C

Como usar a gravação de chamada do sistema em C

Como usar a gravação de chamada do sistema em C

A chamada do sistema serve como o gateway principal entre os programas e o kernel do sistema operacional Linux. Embora você quase certamente precise de uma chamada de sistema ao longo de sua carreira de programação C, se você almeja uma produtividade excepcional ou um certo estilo de recurso, o repositório Glibc ou outras bibliotecas padrão encontradas em distribuições Linux populares serão suficientes para a grande maioria de seus requisitos. Neste guia, vamos estabelecer um conceito sobre a chamada Write System em linguagem C.

Sintaxe:

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

Nesta sintaxe acima, a primeira linha mostra a biblioteca para chamadas do sistema. Na segunda linha, fd representa um descritor de arquivo que é de fato um número que especifica o arquivo aberto de um processo. A palavra-chave * buf significa buffer. Este contém todos os dados nele. O próximo é a contagem. É o número de bytes a serem gravados em um descritor de arquivo do buffer.

Pré-requisitos de instalação:

Para executar qualquer código de linguagem C, você deve primeiro instalar alguns pacotes na distribuição Linux. Se você quiser ver mais informações sobre a chamada de sistema de gravação, você deve instalar o pacote manpages-dev para fazer isso. Para abrir o terminal usando a tecla de atalho Ctrl + Alt + T. Depois de abri-lo, escreva o comando apt install abaixo seguido pela palavra-chave manpages-dev para instalar manpages.

$ sudo apt install manpages-dev

Vai demorar algum tempo para instalar as páginas de manual. Espere até que seja concluído.

Após a instalação, você pode ver as informações adicionais sobre a chamada de sistema “write” através do comando below man no shell.

$ man 2 escrever

A página de manual de saída para o comando “escrever” é fornecida abaixo. Você pode ler as informações sobre isso. Pressione q para sair do manual.

Agora é hora de instalar o pacote “Gcc” em seu sistema Linux para trabalhar na linguagem C. Para isso, abra o shell e escreva o comando apt install abaixo seguido da palavra-chave “gcc”.

$ sudo apt install gcc

Enquanto isso, durante a instalação, pode ser solicitado que você confirme esta ação de instalação pressionando “y” para continuar e “n” para interrompê-la. Então, toque na tecla “y” e pressione a tecla Enter.

Ele será instalado em seu sistema em alguns minutos, e as últimas linhas de saída serão as mostradas no instantâneo abaixo.

Exemplos:

Vamos ter alguns exemplos de uma chamada de sistema de “gravação” em nossa distribuição Linux. Portanto, abra o shell da linha de comando e crie um novo arquivo C nele com a extensão ponto “c”. Você deve usar o comando nano abaixo para criá-lo e abri-lo rapidamente. Demos a ele um nome como “novo.c ”.

$ nano novo.c

A janela abaixo será aberta. Agora você tem que escrever o código afixado neste arquivo. Neste código, incluímos um unistd.h biblioteca primeiro. Em seguida, criamos a função principal e, dentro desta função, criamos uma chamada de sistema "escrever". Nesta chamada de sistema, o primeiro parâmetro é o descritor de arquivo. Neste caso, o inteiro 1 representa a tela do dispositivo de saída e é fixo. Portanto, nosso resultado será mostrado na tela. O segundo parâmetro mostra os dados do buffer. Você pode adicionar qualquer coisa a ele. E o último parâmetro mostra o número de contagem para os dados fornecidos no parâmetro buffer. Como mencionamos 5 como o número de contagem, ele só mostrará os primeiros 5 bytes dos dados do buffer e ignorará os bytes restantes. Salve este código usando a tecla de atalho Ctrl + S e saia deste arquivo usando o comando Ctrl + X.

#incluir
Int main ()
Escreva (1, “Aqsa Yasin”, 5);

Agora no terminal, tente o comando gcc abaixo para compilar este código recém-criado com um nome de arquivo.

$ gcc new.c

Vamos verificar este código usando o padrão.arquivo criado em tempo de execução. Então, tente o seguinte.comando out para verificar a saída da chamada de sistema “write”. Temos que usá-lo com “./ ”Para escolher o arquivo do diretório atual.

$ ./uma.Fora

A saída que você pode ver exibiu apenas a palavra "Aqsa" por causa do número de contagem 5.

Vamos mudar nosso código um pouco. Alteramos o número da contagem para 11 porque temos um total de 11 bytes em nossos dados de buffer “Aqsa Yasin”. Portanto, desta vez, a saída mostrará todos os bytes dos dados da string "Aqsa Yasin". Salve este arquivo usando Ctrl + S e saia usando a tecla de atalho Ctrl + X.

Vamos compilar o código atualizado usando o compilador gcc recém-instalado para distribuição Linux. Tente o mesmo comando gcc junto com o nome de um arquivo como “novo.c ”.

$ gcc new.c

Agora exiba a saída do mesmo código usando o anterior “a.out ”comando como abaixo. A saída mostra a string completa "Aqsa Yasin" do buffer.

$ ./uma.Fora

Vamos ver como o código funciona quando consideramos o número de contagem maior do que o número total de bytes que os dados do buffer contêm. Então, temos usado a contagem de 30. Salve e feche o arquivo.

Compile o mesmo arquivo atualizado usando o comando gcc como abaixo.

$ gcc new.c

Agora execute o arquivo usando o a.comando out, e a saída mostrará os dados do buffer, bem como algum valor de lixo com ele, conforme exibido na saída de instantâneo abaixo.$ ./uma.Fora

Você também pode verificar o número total de bytes gravados no arquivo usando o código abaixo no mesmo arquivo.

Compile o código pela instrução gcc.

$ gcc new.c

A saída mostra o número total de bytes, incluindo dados de buffer e quebra de linha, usando o a.fora do comando.

$ ./uma.Fora

Conclusão:

Neste tutorial, elaboramos o conceito para usar a chamada de sistema “Write” em C. Experimente todos os exemplos para entender a ideia da chamada de sistema “escrever” usando este artigo.

WinMouse permite que você personalize e melhore o movimento do ponteiro do mouse no PC com Windows
Se você quiser melhorar as funções padrão do ponteiro do mouse, use um freeware WinMouse. Ele adiciona mais recursos para ajudá-lo a obter o máximo do...
O botão esquerdo do mouse não funciona no Windows 10
Se você estiver usando um mouse dedicado com seu laptop ou computador desktop, mas o o botão esquerdo do mouse não funciona no Windows 10/8/7 por algu...
O cursor pula ou se move aleatoriamente enquanto digita no Windows 10
Se você descobrir que o cursor do mouse pula ou se move por conta própria, de forma automática e aleatória ao digitar em um laptop ou computador com W...