In questo articolo, parlo della famiglia di funzioni Exec e ti mostrerò come utilizzare ognuna di queste funzioni della famiglia Exec in C. Quindi iniziamo.
C Funzioni del sistema nella famiglia Exec:
Le famiglie della funzione exec sono definite nell'intestazione unistd.H. Quindi, devi usare questa intestazione sul programma C in cui si desidera utilizzare queste funzioni.
Le funzioni Exec disponibili insieme ai loro parametri di funzione sono riportate di seguito:
Vediamo cosa fanno ciascuna di queste funzioni e come usarle.
Funzione di sistema Execl ():
In Execl () La funzione di sistema prende il percorso del file binario eseguibile (i.e. /bin/ls) come il primo e il secondo argomento. Quindi, gli argomenti (i.e. -lh, /casa) che vuoi passare all'eseguibile seguito da NULLO. Quindi Execl () La funzione di sistema esegue il comando e stampa l'uscita. Se si verifica un errore, allora Execl () restituisce -1. Altrimenti, non restituisce nulla.
Di seguito è riportato un esempio della funzione di sistema Execl ():
#includereHo corso il ls -lh /casa Comando usando la funzione di sistema Execl (). Come puoi vedere, viene visualizzato il risultato corretto.
Funzione di sistema Execlp ():
Execl () non usa il SENTIERO variabile d'ambiente. Quindi, è necessario il percorso completo del file eseguibile con Execl (). Execlp () utilizza la variabile per il percorso dell'ambiente. Quindi, se nel percorso è disponibile un file o un comando eseguibile, allora il comando o il nome file sono sufficienti per eseguirlo, il percorso completo non è necessario.
Possiamo riscrivere l'esempio Execl () utilizzando la funzione di sistema Execlp () come segue:
#includereHo superato solo il nome di comando ls, Non il percorso completo /bin/ls. Come puoi vedere, ho ottenuto lo stesso output di prima.
Funzione di sistema Execv ():
Nella funzione Execl (), i parametri del file eseguibile vengono passati alla funzione come argomenti diversi. Con Execv (), è possibile passare tutti i parametri in un array null terminato argv. Il primo elemento dell'array dovrebbe essere il percorso del file eseguibile. Altrimenti, la funzione Execv () funziona proprio come Execl ().
Possiamo riscrivere l'esempio Execl () come segue:
#includereCome puoi vedere, sto ottenendo l'output corretto.
Funzione di sistema Execvp ():
Funziona allo stesso modo della funzione di sistema Execv (). Ma viene utilizzata la variabile per l'ambiente del percorso. Quindi, il percorso completo del file eseguibile non è richiesto come in Execlp ().
Possiamo riscrivere l'esempio Execv () come segue:
#includereCome puoi vedere, viene visualizzato l'output corretto.
Funzione di sistema Execle ():
Funziona proprio come Execl () ma puoi fornire le tue variabili di ambiente insieme ad esso. Le variabili di ambiente vengono passate come un array envp. L'ultimo elemento del envp L'array dovrebbe essere nullo. Tutti gli altri elementi contengono le coppie di valore chiave come stringa.
Di seguito è riportato un esempio della funzione di sistema Execle ():
#includereHo superato due variabili di ambiente NOME HOST E PORTA alla funzione Execle (). Come puoi vedere, posso accedervi dall'eseguibile /Bin/Bash.
Funzione di sistema Execve ():
Proprio come Execle () puoi fornire le tue variabili di ambiente insieme a Execve (). Puoi anche passare gli argomenti come array come hai fatto in Execv ().
L'esempio Execle () può essere riscritto come segue:
#includereCome puoi vedere, otteniamo lo stesso output dell'esempio Execle ().
Quindi, è così che usi la famiglia della funzione Exec in C per la programmazione del sistema in Linux. Grazie per aver letto questo articolo.