C Programmazione

Come usare la chiamata di sistema Lseek in C

Come usare la chiamata di sistema Lseek in C

La chiamata di sistema Lseek è stata utilizzata per leggere alcuni caratteri o dati specifici da un file o per scrivere del contenuto nella posizione specifica di qualsiasi file. Ciò significa che puoi leggere o scrivere tra il contenuto di un file.

Sintassi:

Off_t lseek(int fd, off_t offset, int da dove);

Questa chiamata di sistema "lseek" richiede due file di intestazione, e.g., “sis/tipi”.h” e “unistd.h”. La chiamata di sistema lseek richiede tre parametri. Il primo è "fd", che è un descrittore di file. Il secondo è "offset", usato per posizionare il puntatore. E il terzo parametro, "where", viene utilizzato per specificare la posizione di un puntatore di file, e.g., inizio, fine, metà.

Installa pagine man:

Per controllare le informazioni aggiuntive relative alle chiamate di sistema, devi installare il pacchetto manpages-dev. Quindi prova ad avviare il terminale della shell Linux usando il tasto di scelta rapida Ctrl+Alt+T o cercalo dall'area delle attività. Dopo aver avviato con successo il terminale di comando, eseguire la seguente query di installazione apt per installare la libreria manpages-dev. Richiede il passcode dell'account corrente per procedere con l'installazione. Inserisci la password e tocca il tasto Invio dalla macchina da scrivere. Il processo di installazione verrà avviato e inizierà a raccogliere informazioni.

$ sudo apt install manpages-dev

Il processo di installazione ti farà aspettare un po' di tempo. Dopo che l'installazione è stata completata, ora puoi controllare le informazioni relative al comando "lseek".  Quindi, scrivi il comando "man 2" sotto insieme al nome della chiamata di sistema system. Come puoi vedere, abbiamo verificato la presenza di "lseek" nelle istruzioni seguenti.

$ man 2 lseek

Di seguito è stata aperta la pagina man per la chiamata di sistema "lseek". Puoi avere tutte le informazioni a riguardo.

Installa il compilatore GCC:

Ora è il momento di installare il compilatore GCC per la compilazione dei file in linguaggio C. Quindi, devi usare un comando apt install molto semplice nella shell per installarlo mentre usi l'estensione del compilatore come nome della parola chiave di seguito.

$ sudo apt install gcc

Ci vorrà poco tempo per completare l'installazione. Dopo aver installato il pacchetto gcc, il tuo sistema Linux è pronto per utilizzare i file di linguaggio c al suo interno.

Esempio 01:

Prima di approfondire il concetto di chiamata di sistema lseek, devi avviarlo con un semplice tipo di file. Quindi, avvia il terminale e prova il comando touch sottostante per creare un semplice file chiamato "seek" nella home directory della tua distribuzione Linux.

$ tocco cerca

Aggiungi alcuni dati nel file "cerca" e salvalo. Puoi vedere il contenuto del file "cerca" nella shell della riga di comando usando la semplice query "gatto" di seguito. Il contenuto di un file ha alcuni alfabeti e numeri insieme al segno "*".

$ gatto cerca

Creiamo un file di tipo C “test.c" utilizzando la parola chiave nano per aprirlo direttamente con l'editor Nano. Prova a eseguire il comando seguente per farlo.

$ nano test.c

Controlliamo un programma senza il comando lseek. Si aprirà un editor di testo nano con un file di tipo C menzionato nella parte superiore. Ora scrivi il codice mostrato di seguito dall'immagine nel file C dell'editor. Le prime 4 righe contengono i file di intestazione necessari per implementare il comando “lseek”. Successivamente, è stata avviata la funzione principale. In questo metodo principale, abbiamo definito i dati di tipo intero e carattere per un ulteriore utilizzo. La terza riga della funzione principale ha utilizzato la chiamata open per aprire un file chiamato "seek", che abbiamo appena creato sopra, e l'offset "O_RDWR" è stato utilizzato per i permessi di lettura e scrittura. Il contenuto del file è stato restituito al descrittore di file "f". Dopo questo, abbiamo usato la prima chiamata al metodo read per leggere dati di 12 caratteri dal file di ricerca seek. La funzione di scrittura è stata utilizzata per scrivere dati nello schermo. Un altro comando di lettura è stato utilizzato per ottenere i successivi 12 caratteri dal descrittore di file "f", e il comando di scrittura sta leggendo i successivi 12 caratteri nella schermata di output. Da ciò, possiamo presumere che l'output mostrerà un totale di 24 caratteri dal file "cerca". Premi Ctrl+S per salvare questo file e prova Ctrl+X per chiuderlo.

Compiliamo solo il “test.c" utilizzando il comando del compilatore GCC di seguito.

$ gcc test.c

Ora esegui il codice del “test.c" per controllare l'output del codice C come indicato di seguito. L'output ha visualizzato il set di 24 caratteri del contenuto dalla ricerca del file come di seguito.

$ ./un.su

Usiamo il comando "lseek" nel codice per controllare l'output di una chiamata di sistema. Quindi apri lo stesso test.c utilizzando il comando nano sottostante.

$ nano test.c

Aggiorna il tuo codice così com'è. Questa volta abbiamo utilizzato 6 caratteri dal file di contenuto da leggere e scrivere. Il comando lseek è stato utilizzato per saltare i successivi 5 caratteri dal file di contenuto e passare ai caratteri successivi utilizzando l'offset "SEEK_CUR".

Compiliamo di nuovo questo codice.

$ gcc test.c

L'output del codice C usando a.out mostra i primi 6 caratteri, poi salta i successivi 5 caratteri e poi mostra i successivi 6 caratteri consecutivi.

$ ./un.su

Esempio 02:

Per avere qualche cambiamento, cambiamo il codice. Apri prima il file.

$ nano test.c

Ora useremo l'offset "SEEK_SET" per dire alla chiamata di sistema "lseek" di mostrare i prossimi 6 caratteri dalla decima posizione di una stringa.

Compila il file C.

$ gcc test.c

Il comando di output a.out ha mostrato i 6 caratteri dal decimo indice di una stringa.

Conclusione:

Questa guida ha fatto alcuni semplici esempi di utilizzo del comando di chiamata di sistema "lseek" per controllare o mostrare contenuti o dati da qualsiasi posizione desideriamo.

Giochi rimasterizzati in HD per Linux che non hanno mai avuto una versione Linux prima
Molti sviluppatori ed editori di giochi stanno realizzando remaster HD di vecchi giochi per prolungare la vita del franchise, per favore i fan richied...
Come utilizzare AutoKey per automatizzare i giochi Linux
AutoKey è un'utilità di automazione desktop per Linux e X11, programmata in Python 3, GTK e Qt. Utilizzando la sua funzionalità di scripting e MACRO, ...
Come mostrare il contatore FPS nei giochi Linux
I giochi Linux hanno avuto una grande spinta quando Valve ha annunciato il supporto Linux per il client Steam e i loro giochi nel 2012. Da allora, mol...