Come utilizzare il sistema di sistema readv in c

Come utilizzare il sistema di sistema readv in c
Il readv () System Call Reading Count Segments a partire dal documento condiviso dal descrittore del documento FD ha agganciato i vari buffer del vettore. L'I/O vettorato è un processo in cui una chiamata di sistema solitario scrive verso un vettore di buffer da un flusso singolare di dati o letture da un vettore di buffer come un unico flusso di dati. Il metodo di chiamata di sistema ReadV () è simile a Read (2); A parte questo, riempie diversi buffer. La chiamata di sistema readv () ripristina il totale dei byte letto quando ci riesce; -1 viene ripristinato in caso di errore. Questo articolo coprirà l'argomento della chiamata di sistema ReadV () in Ubuntu 20.04 Sistema Linux. Assicurati di avere privilegi sudo per evitare qualsiasi inconveniente.

All'inizio, accedi dal sistema operativo Linux e apri il terminale della console della riga di comando. Ci sono due modi per aprirlo. Il primo utilizza un tasto di scelta rapida "ctrl+alt+t" mentre sei sul desktop del sistema Linux e l'altro sta usando l'area di attività. Fai clic sulla barra del menu dell'attività evidenziata nell'angolo in alto a sinistra della schermata del desktop. La barra di ricerca si aprirà. Tocca e scrivi "Terminal". Premi il tasto "Invio" per procedere. Allora la shell del terminale verrà aperta. Dopo l'apertura del terminale della console, è prima di creare un file con un'estensione del tipo "txt" per un semplice utilizzo. Potremmo usare l'istruzione "tocco" e il nome di un file, e.G., test.txt, per crearlo. Premere il pulsante "Invio" e verrà creato un file.

$ touch test.TXT

Nella directory home del tuo sistema Linux, puoi trovare il file di recente formazione "Test.TXT". Doppio toccare su di esso per aprirlo e digitare i dati sotto prestazioni in esso. Salvalo premendo "Ctrl+S" o semplicemente facendo clic sul pulsante di "Salva". Chiudilo dopo l'aggiornamento utilizzando un segno incrociato sul lato destro del file.

Tornando al terminale, puoi anche controllare i dati di questo file utilizzando un comando "gatto" molto semplice come sotto. L'output mostra il contenuto del file "Test.TXT".

$ cat test.TXT

Ora, per iniziare a lavorare sulla lingua C, il tuo sistema Linux deve contenere un compilatore di linguaggio C. Per questo, devi prima installare un compilatore. Suggeriamo di installare il compilatore "GCC" utilizzando il comando "APT" sudo come di seguito.

$ sudo APT Installa GCC

Dopo la configurazione di un compilatore, ora puoi lavorare correttamente sulla lingua C. In primo luogo, dobbiamo creare un nuovo file con un'estensione del tipo "C" alla fine utilizzando il nano editor. Pertanto, prova la query di seguito nella console per farlo.

$ nano test.C

Spiegazione del codice

Dopo l'apertura del Nano Editor, scrivi il codice Codice di seguito per utilizzare la chiamata del sistema Readv nel nostro sistema Linux. Prima di tutto, abbiamo usato le librerie seguenti nel codice C per funzionare correttamente e senza alcun errore. Quindi abbiamo dichiarato la funzione principale come mostrato nello snap. All'inizio della funzione principale, dobbiamo definire due variabili, "io" e "fd". Successivamente, sono stati specificati array di tipi a tre caratteri o meno denominati "F1", "F2" e "F3". Dopo questo, abbiamo dichiarato un elenco di tipi di struttura o un array chiamato "Iovec". Ogni struttura IOVEC definisce un frammento, che sarebbe un singolo buffer disgiunta. Quindi abbiamo creato un'altra variabile di dimensione di tipo denominata "NR". Dopo tutte le dichiarazioni, abbiamo specificato una semplice chiamata di sistema "aperta" per aprire il file "Test.txt "dal suo regista e leggi tutti i suoi contenuti e ritorna al descrittore di file" FD ". La flag O_rdonly è stata utilizzata per scopi di lettura. Nella riga successiva, abbiamo dichiarato un'istruzione "if" per verificare se il descrittore dei file è eguagliato o no. Se è "-1", sarà tramite un messaggio di errore "Apri" nella shell e restituisce 1. Al di fuori dell'istruzione "if", abbiamo utilizzato i descrittori di file per assegnare i valori agli indici della struttura. Il "IOV.Base "è un puntatore che mostra l'inizio di un buffer e" IOV.Len ”mostra la dimensione totale del buffer in byte. Un vettore sembra essere una raccolta di sezioni. Ogni sezione del vettore specifica la posizione e le dimensioni di una cache del buffer su cui o a cui i dati possono essere incisi o letti. Prima di passare al buffer successivo, il metodo readv () copre completamente tutti i buffer di byte "IOV_len". Prima di passare effettivamente a un'altra cache del buffer, il metodo WriteV () inscrive ancora l'intero byte "IOV_len". A partire da IOV [0], precedentemente IOV [1], e così via, tramite IOV [COUNT-1], entrambe le operazioni agiscono ancora sulle sezioni in ordine. Dopo di questo, abbiamo dichiarato una chiamata di sistema "readv" per leggere il descrittore di file e i buffer di byte "IOV" fino alla dimensione di 3.

Quindi abbiamo controllato i byte restituiti. Se il valore di ritorno è "-1", mostrerà un messaggio di errore "readv". Abbiamo usato il ciclo "per" per stampare i caratteri del file tramite "IOV". Se la funzione è stata chiusa, visualizzerà "Close". Salva questo codice usando "Ctrl+S" e lascia il file utilizzando il metodo di scelta rapida "Ctrl+X".

Ora compila il codice utilizzando il comando GCC come indicato di seguito.

Test $ GCC.C

Successivamente, eseguire il comando di esecuzione per verificare i risultati. L'output di seguito mostra il contenuto in blocchi e mostra anche i messaggi di errore. Mostra anche il numero dell'indice per l'array buffer come 0, 1 e 2.

$ ./UN.fuori

Conclusione

Abbiamo finito tutte le parti essenziali per intricare la chiamata di sistema "readv" in Ubuntu 20.04 Sistema Linux. Tutti i comandi funzionano lo stesso per altre distribuzioni Linux.