Neste artigo, vou falar sobre a família Exec de funções e mostrar como usar cada uma dessas funções da família EXEC em C. Então vamos começar.
C Funções do sistema na família EXEC:
As famílias da função EXEC são definidas no cabeçalho unistd.h. Então, você deve usar este cabeçalho no programa C, onde deseja usar essas funções.
As funções executivas disponíveis, juntamente com seus parâmetros de função, são fornecidos abaixo:
Vamos ver o que cada uma dessas funções faz e como usá -las.
função do sistema execl ():
Na função do sistema execl () segue o caminho do arquivo binário executável (i.e. /bin/ls) como o primeiro e o segundo argumento. Então, os argumentos (eu.e. -LH, /lar) que você deseja passar para o executável seguido por NULO. Em seguida, a função do sistema execl () executa o comando e imprime a saída. Se ocorrer algum erro, Execl () retornará -1. Caso contrário, não retorna nada.
Um exemplo da função do sistema EXECL () é dada abaixo:
#incluirEu corri LS -LH /Home Comando usando função do sistema Execl (). Como você pode ver, o resultado correto é exibido.
função do sistema execlp ():
execl () não usa o CAMINHO variável de ambiente. Portanto, o caminho completo do arquivo executável é necessário para executá -lo com Execl (). execlp () usa a variável de ambiente de caminho. Portanto, se um arquivo ou comando executável estiver disponível no caminho, o comando ou o nome do arquivo é suficiente para executá -lo, o caminho completo não é necessário.
Podemos reescrever o exemplo EXECL () usando a função Execlp () do sistema da seguinte forma:
#incluirEu só passei o nome do comando ls, Não é o caminho completo /bin/ls. Como você pode ver, obtive a mesma saída de antes.
Função do sistema EXECV ():
Na função Execl (), os parâmetros do arquivo executável são passados para a função como argumentos diferentes. Com o EXECV (), você pode passar todos os parâmetros em uma matriz de terminação nula argv. O primeiro elemento da matriz deve ser o caminho do arquivo executável. Caso contrário, a função Execv () funciona exatamente como a função Execl ().
Podemos reescrever o exemplo Execl () da seguinte forma:
#incluirComo você pode ver, estou obtendo a saída correta.
Função do sistema EXECVP ():
Funciona da mesma maneira que a função do sistema EXECV (). Mas, a variável de ambiente do caminho é usada. Portanto, o caminho completo do arquivo executável não é necessário como no Execlp ().
Podemos reescrever o exemplo Execv () da seguinte forma:
#incluirComo você pode ver, a saída correta é exibida.
função do sistema execle ():
Funciona como Execl (), mas você pode fornecer suas próprias variáveis de ambiente junto com ele. As variáveis de ambiente são passadas como uma matriz Envp. O último elemento do Envp Array deve ser nulo. Todos os outros elementos contêm os pares de valor-chave como string.
Um exemplo da função do sistema execle () é dada abaixo:
#incluirPassei duas variáveis de ambiente NOME DE ANFITRIÃO e PORTA para a função execle (). Como você pode ver, posso acessá -los a partir do executável /BIN/BASH.
função do sistema execve ():
Assim como Execle (), você pode fornecer suas próprias variáveis de ambiente junto com Execve (). Você também pode passar argumentos como matrizes como você fez no Execv ().
O exemplo Execle () pode ser reescrito da seguinte forma:
#incluirComo você pode ver, obtemos a mesma saída que no exemplo execle ().
Então, é assim que você usa a família Exec Function em C para programação do sistema no Linux. Obrigado por ler este artigo.