Funzione Realpath 3 C

Funzione Realpath 3 C
Mentre si lavora su sistemi operativi Linux o Windows, è possibile incontrare molti file e directory. Tutti i file e le directory di qualsiasi sistema operativo possiedono un percorso dalla loro directory di radice. All'interno di molti sistemi operativi, questo percorso può essere visto nella parte superiore dell'Explorer di file per un particolare file o cartella. La libreria POSIX C ha inventato la funzione "RealPath" per visualizzare il percorso completo e originale di qualsiasi file dalla particolare directory corrente. Iniziamo all'interno del sistema operativo Kali Linux.

Esempio 1:

Nel nostro primo esempio, daremo un'occhiata al semplice codice C di utilizzo della funzione "RealPath" per ottenere il percorso reale e intero di alcuni file dalla directory di lavoro corrente del sistema. Dobbiamo utilizzare un totale di 6 file di intestazione di base all'inizio di questo codice incluso con l'uso della parola chiave "#include". Alcune librerie sono librerie standard per utilizzare il flusso di output di input nel codice, alcune sono qui per utilizzare i valori della stringa e alcune vengono utilizzate per eseguire la gestione delle eccezioni. La funzione principale () di questo codice definisce un array di tipo carattere chiamato "buffer" con una dimensione integrata di "percorso max" o 0. Questo array viene utilizzato per salvare il percorso reale e completo di alcune directory.

La funzione RealPath () prende il "qualche file.Nome file txt "con l'array" buffer "che viene passato come argomento per la memorizzazione dell'intero percorso. Un puntatore "percorso" del tipo di carattere viene inizializzato per puntare verso l'indirizzo di una variabile "buffer" contenente il percorso di un file passato dalla funzione RealPath ().

Qui arriva l'istruzione "if-else" per verificare se abbiamo ottenuto il riferimento corretto per il percorso del file o se il puntatore "percorso" è vuoto. Se restituisce il riferimento corretto, la funzione printf viene utilizzata per visualizzare il testo “Il percorso del file completo di qualche file.txt: ”insieme al percorso reale del file particolare. Altrimenti, l'istruzione ELSE viene eseguita e l'istruzione printf utilizzata all'interno di essa lancerà un errore usando la funzione "Strerror", prendendo "errno" come argomento. La funzione Perror viene utilizzata per visualizzare nuovamente lo stesso errore con il nome di errore "RealPath". Per ottenere l'errore, la funzione di uscita di questo codice termina il programma il prima possibile. Salviamo il nostro primo esempio e compiliamolo per vedere i suoi risultati.


Usiamo il compilatore GCC per compilare RealPath.C file con l'opzione -o per generare il suo file oggetto chiamato "RealPath.fuori "all'interno della stessa directory di lavoro. Questo comando ha esito positivo e abbiamo ottenuto lo stesso nome del file oggetto nella directory "SRC" di casa secondo l'output dell'istruzione "LS".


Ora eseguiamo il file oggetto che abbiamo appena creato con "./"Caratteri nella stessa directory di lavoro. L'output di questo comando ci mostra il percorso completo per questo particolare file a partire dalla cartella radice come “/home/linux/src/qualche file.TXT".

Esempio 2:

Iniziamo con un altro esempio per utilizzare la funzione RealPath () per ottenere il percorso reale di alcuni file. All'interno di questo codice C, abbiamo aggiunto gli stessi 6 file di intestazione con la parola chiave "#include". Successivamente, la funzione principale () viene inizializzata con la variabile del puntatore del tipo di carattere "percorso di collegamento" che memorizza un percorso come "/src/qualche file.TXT". Un array di "percorso reale" viene utilizzato per archiviare il vero percorso di "Somefile.File txt "con" +1 "per recuperare il percorso di un file menzionato dopo il secondo carattere"/". Un altro puntatore "PTR" del tipo di carattere è definito.

Passiamo la variabile puntatore del percorso di collegamento e l'array percorsi effettivo alla funzione RealPath () per ottenere l'intero percorso di “/src/somefile.txt "nell'array" percorso effettivo ". Il risultato restituito viene salvato nella variabile del puntatore "PTR". All'interno della parte "if", se la "PTR" restituisce il risultato mediante la funzione RealPath () che contiene un numero di riferimento, l'istruzione Printf visualizza il percorso effettivo tramite l'array del percorso effettivo. Altrimenti, la parte altro di questo codice viene eseguita e genera un errore tramite l'uso della funzione Strerror usando la variabile "errno" come argomento. La funzione di uscita è terminare questo programma.


Abbiamo compilato questo codice C con il compilatore GCC e creato il suo “RealPath1.File di oggetto fuori "preceduto dall'opzione -o.


Dopo aver eseguito il suo file di oggetti con "./”Carattere, abbiamo ricevuto l'errore perché non abbiamo fornito il formato corretto del percorso del file“/src/somefile.TXT".


Aggiorniamo di nuovo il codice per evitare questo errore poco dopo l'esecuzione del file oggetto. Aggiorniamo la sua prima riga all'interno della funzione principale,. Il puntatore del tipo di carattere "percorso di collegamento" che contiene il file specifico con una cartella seguente in esso viene aggiornato. Ora aggiungiamo il nome di un "qualche file.file txt "che risiede nella directory di lavoro attuale" SRC "anziché"/src/somefile.percorso txt "verso la cartella della directory di lavoro. Il resto del codice viene utilizzato senza alcuna modifica. Salva ed esegui questo codice per vedere i risultati.


Dopo aver compilato questo file C con il compilatore GCC e creato il suo “RealPath1.File di oggetto fuori "con l'oggetto -o, è pronto per essere eseguito.


Dopo l'esecuzione del file dell'oggetto C, il percorso reale e completo del file specifico "Somefile.txt "è mostrato sullo schermo del terminale.

Conclusione

Questo articolo riguarda l'uso del metodo RealPath della libreria POSIX C per mostrare il percorso reale e completo di alcuni file specifici. Per questo, abbiamo provato i due esempi C nella piattaforma Kali Linux. All'interno dei nostri esempi, abbiamo esaminato come questa funzione reagisce a un singolo nome di file o con un percorso specifico.