C Programmazione

Come utilizzare Open System Call in C

Come utilizzare Open System Call in C

Le chiamate di sistema vengono utilizzate nelle distribuzioni Linux per fornire una porta all'interno del sistema operativo Linux e dei programmi. Il sistema operativo Linux utilizza la libreria Glibc per supportare le chiamate di sistema al suo interno durante l'utilizzo del linguaggio C. Esistono molti altri modi per utilizzare anche le chiamate di sistema. In questa guida all'articolo, discuteremo della chiamata di sistema aperta nel sistema Linux. La chiamata di sistema "Apri" è stata utilizzata per aprire rapidamente il file specificato nel percorso. Ci fa conoscere il descrittore di file di un file creato dall'utente. Abbiamo usato Ubuntu 20.04 per ottenere alcune chiamate di sistema "Aperte" pratiche.

Installa librerie

Il linguaggio C richiede l'installazione di alcuni pacchetti di librerie aggiuntivi come prerequisiti. Prima di tutto, devi installare il pacchetto manpages-dev per controllare le informazioni relative alle chiamate di sistema. Aprire il terminale della riga di comando dall'area delle attività ed eseguire le istruzioni seguenti per installare le manpage.

$ sudo apt install manpages-dev

L'output per il completamento dell'installazione è stato fornito di seguito.

Ora controlleremo la chiamata di sistema aperta usando il comando "man" come di seguito.

$ uomo 2 aperto

La pagina man di output per la chiamata di sistema "Open" è stata mostrata di seguito. Puoi vedere le informazioni aggiuntive a riguardo. Premere il pulsante "q" per uscire.

La sintassi sopra mostra le prime tre righe di librerie necessarie da aggiungere per le chiamate di sistema. Sono disponibili tre sintassi per la chiamata di sistema aperta. La prima sintassi mostra il "percorso", che è il nome di un file da aprire. Il secondo parametro, "flags", mostra la modalità di un file, e.g., leggi o scrivi. La seconda sintassi può essere utilizzata quando il file non esiste. La modalità parametro viene utilizzata per mostrare i privilegi sul file.

Ora è il momento di installare il compilatore GCC per il debug del codice C in Ubuntu 20.04 Distribuzione Linux. Per questo, esegui le istruzioni seguenti nella shell per farlo.

$ sudo apt install gcc

Richiede di toccare "Y" per continuare l'installazione del compilatore GCC, altrimenti premere il pulsante "n" per chiudere l'installazione. Quindi premi il pulsante "y" e premi Invio per continuare.

L'output per il completamento è mostrato di seguito.

Esempio 01

Diamo un'occhiata all'esempio molto semplice di una chiamata di sistema "Aperta". Innanzitutto, apri la shell dei comandi e crea un nuovo file di testo "test.txt" utilizzando il semplice comando touch come segue:

$ prova di tocco.TXT

Aggiungi alcuni dati manualmente. Puoi vedere i dati in un file usando il seguente comando cat.

$ prova del gatto.TXT

Ora creiamo un nuovo file C usando un comando nano nella shell, come mostrato di seguito.

$ nano nuovo.c

Verrà aperto il file GNU nano sottostante. Devi digitare il codice della lingua C qui sotto. Puoi vedere che abbiamo aggiunto i pacchetti di libreria necessari affinché il codice C venga eseguito correttamente. Successivamente, abbiamo definito la funzione principale per lavorare su una chiamata di sistema Open system. Abbiamo dichiarato due variabili intere. La variabile "n" viene utilizzata per contare i valori del buffer e "fd" viene utilizzato per il descrittore di file. Abbiamo dichiarato l'array buffer di tipo carattere come "buf" con dimensione 50. La chiamata di sistema aperta è stata utilizzata per leggere il contenuto dal file “test.txt" e riportalo al descrittore di file. Il "O_RDONLY" è stato utilizzato per scopi di lettura. La riga successiva mostra la chiamata di sistema letta per raccogliere i 10 byte dal buffer e restituirli nell'intero n. Inoltre, il comando di scrittura è stato utilizzato per scrivere il contenuto o i dati del buffer nel descrittore di file, che è la schermata di output Nel nostro caso in questo momento. Salva questo file usando Ctrl+S e chiudilo usando il comando Ctrl+X.

#includere
#includere
#includere
#includere
intero principale()

int n, fd;
char buf[50];
fd=open(“prova.txt”, O_RDONLY);
n=leggi(fd , buf, 10);
write(1 , buf, 10);

Compiliamo prima il codice C per una chiamata di sistema aperta usando il comando gcc di seguito.

$ gcc nuovo.c

Ora è il momento di controllare l'output per il codice C per una chiamata di sistema aperta. Usiamo il sotto a.comando out nella shell. L'output mostra i 10 byte dal contenuto di un file "test.TXT".

$ ./un.su

Facciamo un altro esempio per scrivere il contenuto di un file in un altro file usando una chiamata di sistema Open. Per creare un nuovo file C usando il comando nano come di seguito.

$ nano nuovo.c

Quindi prendi lo stesso codice con una piccola modifica. Abbiamo definito un altro descrittore di file nel codice come "fd1". Tutto il codice è lo stesso tranne una riga in più. La penultima riga del codice ha utilizzato la chiamata di sistema aperta per creare un nuovo file denominato "target" utilizzando O_CREAT e la modalità, solo scrittura come O_WRONLY. 0642 mostra i privilegi assegnati a questo file. E il file è stato restituito a un nuovo descrittore di file. La riga successiva ha mostrato un comando per scrivere i byte di contenuto nel buffer secondo il suo descrittore di file file. Salva il file e chiudilo.

Esegui il comando compile gcc per eseguire il debug del file in linguaggio C.

$ gcc nuovo.c

Per visualizzare l'output del codice C, prova a.le istruzioni nella shell come di seguito. Non c'è output perché l'output è stato reindirizzato al file "target" appena creato.

$ ./un.su

Controlliamo i dati di un file target usando il comando cat. L'output mostra che il file contiene 20 byte.

$ gatto bersaglio

Conclusione

Nel tutorial sopra, ti abbiamo spiegato come usare una chiamata di sistema aperta in linguaggio C usando il compilatore gcc. Con l'aiuto di diversi esempi spiegati in questa guida ti guideranno ad implementare il tuo programma desiderato.

Controlla e gestisci il movimento del mouse tra più monitor in Windows 10
Gestore mouse con doppio display ti consente di controllare e configurare il movimento del mouse tra più monitor, rallentando i suoi movimenti vicino ...
WinMouse ti consente di personalizzare e migliorare il movimento del puntatore del mouse su PC Windows
Se vuoi migliorare le funzioni predefinite del puntatore del mouse, usa freeware WinMouse. Aggiunge più funzionalità per aiutarti a ottenere il massim...
Il tasto sinistro del mouse non funziona su Windows 10
Se stai utilizzando un mouse dedicato con il tuo laptop o computer desktop ma il il tasto sinistro del mouse non funziona su Windows 10/8/7 per qualch...