Como usar o sistema readv ligue para c

Como usar o sistema readv ligue para c
Os segmentos de contagem de leitura de chamadas readv () a partir do documento compartilhado por meio do descritor de documentos FD conectado nos vários buffers do vetor. E/S Vectorado é um processo no qual uma chamada de sistema solitário grava para um vetor de buffers de um fluxo singular de dados ou leituras de um vetor de buffers como um único fluxo de dados. O método de chamada readv () é semelhante à leitura (2); Fora isso, preenche vários buffers. A chamada do sistema readv () reverte o total de bytes lido quando for bem -sucedido; -1 é revertido no caso de um erro. Este artigo abordará o tópico do sistema readv () no Ubuntu 20.04 Sistema Linux. Certifique -se de ter privilégios de sudo para evitar qualquer inconveniente.

No início, faça login no seu sistema operacional Linux e abra o terminal do console da linha de comando. Existem duas maneiras de abri -lo. O primeiro usa uma chave de atalho “Ctrl+Alt+T” enquanto você estiver na área de trabalho do sistema Linux, e o outro está usando a área de atividade. Clique na barra de menus de atividades destacada no canto superior esquerdo da tela da área de trabalho. A barra de pesquisa vai aparecer. Toque nele e escreva "Terminal" nele. Aperte a chave "Entre" para prosseguir. A concha do terminal será aberta então. Após a abertura do terminal do console, é hora de criar um arquivo com uma extensão do tipo "txt" para uso simples. Podemos usar a instrução "toque" e o nome de um arquivo, e.g., teste.txt, para criá -lo. Pressione o botão "Enter" e um arquivo será criado.

Teste de Touch.TXT

No diretório inicial do seu sistema Linux, você pode encontrar o arquivo formado recentemente “Teste.TXT". Tape duplo para abri-lo e digitar os dados abaixo apresentados. Salve -o pressionando "Ctrl+S" ou simplesmente clicando no botão de "Salvar". Feche após a atualização usando um sinal cruzado no lado direito do arquivo.

Voltando ao terminal, você também pode verificar os dados deste arquivo usando um comando "gato" muito simples como abaixo. A saída está mostrando o conteúdo do arquivo “Teste.TXT".

$ Teste CAT.TXT

Agora, para começar a trabalhar no idioma C, seu sistema Linux deve ter algum compilador de idiomas C nele. Para isso, você precisa instalar um compilador primeiro. Sugerimos a instalação do compilador "GCC" usando o comando "apt" sudo como abaixo.

$ sudo apt install gcc

Após a configuração de um compilador, agora você pode trabalhar no idioma C corretamente. Em primeiro lugar, temos que criar um novo arquivo com uma extensão do tipo "C" no final usando o editor Nano. Portanto, tente a consulta abaixo no console para fazê -lo.

$ nano teste.c

Explicação do código

Depois que o editor do Nano foi aberto, escreva o código abaixo da linguagem C para usar a chamada do sistema READV em nosso sistema Linux. Primeiro de tudo, usamos as bibliotecas abaixo no código C para ser funcionado corretamente e sem nenhum erro. Em seguida, declaramos a função principal, como mostrado no snap. No início da função principal, temos que definir duas variáveis, "i" e "fd". Depois disso, as matrizes do tipo de três caracteres ou menos foram especificadas denominadas "F1", "F2" e "F3". Depois disso, declaramos uma lista ou matriz de tipo de estrutura chamado "Iovec". Cada estrutura Iovec define um fragmento, que seria um buffer separado individual. Em seguida, criamos outra variável de tamanho de tipo chamado "nr". Depois de todas as declarações, especificamos uma chamada simples de sistema "aberta" para abrir o arquivo "Teste.txt ”de seu diretor e leu todo o seu conteúdo, e reverta para o descritor de arquivo“ FD ”. A bandeira O_RDONLY foi usada para fins de leitura. Na próxima linha, declaramos uma declaração "se" para verificar se o descritor de arquivo é igualado a "-a" ou não. Se for "-1", será através de uma mensagem de erro "abrir" no shell e retornar 1. Fora da declaração "se", usamos os descritores de arquivo para atribuir valores aos índices da estrutura. O “IOV.base "é um ponteiro que mostra o início de um buffer e o" IOV.Len ”está mostrando o tamanho total do buffer em bytes. Um vetor parece ser uma coleção de seções. Cada seção do vetor especifica a localização e o tamanho de um cache de buffer sobre o qual ou como os dados podem ser inscritos ou lidos. Anteriormente, passando para o buffer subsequente, o método readv () abrange totalmente todos os buffers de bytes “iov_len”. Antes de realmente passar para outro cache de buffer, o método writev () ainda inscreve todo o "IOV_LEN" bytes. Começando com o IOV [0], anteriormente IOV [1], e assim por diante, via IOV [Count-1], ambas as operações ainda agem nas seções em ordem. Depois disso, declaramos uma chamada de sistema "readv" para ler o descritor de arquivo e os buffers de bytes "IOV" até o tamanho de 3.

Então nós verificamos os bytes retornados. Se o valor de retorno for "-1", ele mostrará uma mensagem de erro "readv". Usamos o loop "for" para imprimir os caracteres do arquivo via "iov". Se a função tiver sido fechada, exibirá "fechar". Salve este código usando "Ctrl+S" e desista do arquivo usando o método de atalho "Ctrl+X".

Agora compile o código usando o comando gcc, conforme declarado abaixo.

Teste $ GCC.c

Depois disso, execute o comando de execução para verificar os resultados. A saída abaixo está mostrando o conteúdo em pedaços e mostrando as mensagens de erro também. Também está mostrando o número do índice para a matriz de buffer como 0, 1 e 2.

$ ./a.fora

Conclusão

Terminamos todas as partes essenciais para intrincado a chamada do sistema "readv" no Ubuntu 20.04 Sistema Linux. Todos os comandos funcionarão da mesma forma para outras distribuições Linux.