Linux chdir Chiamata di sistema in C

Linux Chdir Chiamata Di Sistema In C



Le modifiche alla directory di lavoro attuale di un dispositivo vengono apportate utilizzando il metodo 'CHDIR'. In una varietà di circostanze, potresti decidere di cambiare la cartella di lavoro attuale del tuo dispositivo. Oppure vuoi eseguire uno script C da una cartella invece della tua attuale directory di lavoro. Di conseguenza, per eseguire quel codice C specifico, è necessario modificare la cartella di lavoro attuale. Inoltre, il metodo 'getcwd' del linguaggio di codifica C può essere utilizzato per determinare rapidamente quando la cartella di lavoro attuale è cambiata. Ora useremo la funzione chdir() di C in questo articolo per cambiare una directory di lavoro.

Esempio 01:

Iniziamo con il funzionamento della funzione chdir() di C nel sistema operativo Linux. Per questo, devi assicurarti che il compilatore di C sia già montato alla tua estremità. Nella maggior parte dei casi, tendiamo a utilizzare il compilatore 'gcc' di C nel nostro sistema operativo Kali Linux. Per iniziare con questo esempio, dobbiamo avere un file C con estensione 'c'. Lo abbiamo chiamato p1.ce abbiamo provato ad aprirlo con l'editor 'nano' di Linux come presentato di seguito.







Quando il tuo file viene aperto nell'editor, devi iniziare a codificarlo. Abbiamo iniziato il nostro programma C aggiungendo le principali librerie di intestazioni di C che sono indispensabili in qualsiasi programma C. Pertanto, le librerie di intestazione stdio.h e unistd.h vengono utilizzate per assicurarsi che l'input e l'output standard possano fluire all'interno del programma. L'intestazione unistd.h è stata utilizzata per utilizzare alcune funzioni standard di C richieste in particolare per questo esempio. Ora, abbiamo avviato la funzione del driver main() di C in questo codice per l'esecuzione automatica all'esecuzione. La variabile dell'array del tipo di carattere 'percorso' è stata definita con una dimensione di 100 perché memorizza solo 100 valori.



L'istruzione della funzione printf() è stata utilizzata per stampare semplicemente la cartella della directory di lavoro corrente di questo file C utilizzando la funzione 'getcwd()'. Questa funzione utilizza la variabile array 'percorso' con una dimensione di 100 per ottenere la directory di lavoro corrente in essa e passarla all'istruzione della funzione printf() per la visualizzazione. Ora è il momento di usare la funzione chdir(). Possiamo passare qualsiasi tipo di carattere per specificare se vogliamo andare avanti nella directory o spostarci all'indietro all'interno della stessa directory.



Quindi, abbiamo provato i caratteri '..' nell'istruzione della funzione chdir() per spostarsi dalla directory di lavoro corrente nella direzione all'indietro, ovvero un livello sotto la directory di lavoro corrente. Nota che in questo momento stiamo lavorando nella cartella del progetto della nostra directory di lavoro principale 'Linux' del sistema Kali Linux. Ora, siamo nella directory 'Linux' invece della directory 'project' dopo aver usato la funzione 'chdir'. Ora, abbiamo provato ancora una volta l'istruzione della funzione 'printf()' per visualizzare la directory di lavoro corrente utilizzando la funzione 'getcwd' in essa contenuta. Il nostro programma termina con l'istruzione return 0.





Dopo aver salvato questo programma C, dobbiamo compilarlo usando il compilatore “gcc” che abbiamo già configurato alla nostra fine. Usando questa istruzione gcc, abbiamo creato un file oggetto di questo file C chiamato 'p1.out' usando l'opzione –o come mostrato di seguito.



Ora, quando esegui il suo file oggetto nel tuo terminale Linux, otterrai prima la directory di lavoro usata dal programma prima di usare la funzione chdir(). Dopo l'uso della funzione chdir(), ci siamo spostati nell'unica directory sottostante e viene visualizzata quella particolare directory 'home'.

Esempio 02:



Utilizzando le stesse librerie di intestazioni, abbiamo avviato questo codice di programma. All'interno della funzione main() di questo programma, abbiamo utilizzato l'istruzione 'if' utilizzando la funzione chdir() in essa contenuta.

Questa funzione verificherà se '/utente' esiste o meno nel sistema impostando la condizione '/utente!=0'. Se la directory non esiste nel sistema corrente, la chiamata alla funzione perror verrà utilizzata per visualizzare il rispettivo messaggio di errore, ad esempio 'la directory utente non esiste. Abbiamo utilizzato un'altra istruzione 'if' usando la funzione chdir() al suo interno. Lo scopo dell'uso della funzione chdir() qui è anche lo stesso che abbiamo fatto nell'istruzione if sopra, che è per verificare se la directory esiste o meno usando la condizione '/temp'!=0. L'unica differenza è l'uso di un nuovo nome di directory '/temp' invece di '/user' come puoi vedere dall'immagine del codice qui sotto.







Se la directory /temp non esiste nel sistema, la funzione perror utilizzata nell'istruzione 'if' genererebbe un messaggio di errore 'la directory/temp non esiste' come mostrato nell'immagine seguente. Dopo l'uso di entrambe le istruzioni 'if', abbiamo terminato questo codice con l'istruzione return 0 della C. Ora il programma è finito. Abbiamo salvato il nostro codice C usando la scorciatoia Ctrl+S prima della sua esecuzione.





Ora che il file è stato salvato nel vostro sistema, dobbiamo compilare il codice C con il compilatore “gcc” che abbiamo già montato alla nostra fine. Usando questa istruzione, abbiamo creato il suo file oggetto 'p2.out' usando l'opzione –o nell'istruzione.





Dopo aver eseguito il file oggetto creato 'p2.out' con i caratteri './', abbiamo appreso che entrambe le directory menzionate nel percorso di 'chdir' non esistono nel sistema o l'errore visualizzato nella shell è stato dimostrato correttamente.



Conclusione

In questo articolo oggi, abbiamo dimostrato l'uso della funzione chdir() di C nel sistema operativo Kali Linux. Il primo esempio illustra come la funzione chdir() può essere utilizzata per modificare una directory di lavoro, ovvero spostarsi da una directory all'altra. L'ultimo esempio di C mostra come possiamo verificare se la directory di lavoro corrente specificata nel percorso di chdir() è esistente o meno.