Sistemas  
 
Rede de conhecimento computador >> Sistemas >> Unix >> Content
O que acontece se o argumento do executivo não for executável usando o Linux?
Se o argumento da família de funções `Ex '(por exemplo,` Execl`, `Execv`,` Execvp`) no Linux não for executável, a chamada `Exec` falhará. O processo * não * muda para executar o arquivo especificado.

Especificamente:

* `errno` será definido: A variável global `errno` será definida para indicar o erro. O valor mais provável será `enoexec` (erro de formato executável), o que significa que o arquivo não é um executável válido para a arquitetura atual ou` eacces` (permissão negada), o que significa que o processo não tem permissão para executar o arquivo (mesmo que seja um executável válido). Outros erros são possíveis, dependendo das circunstâncias específicas (como o arquivo não está sendo encontrado, `enoent`).

* O processo original continua: O processo original * continuará * em execução. A chamada `Exec` retornará -1 e o programa continuará a execução a partir do ponto após a falha na chamada` Exec`. Isso é crucial; não termina o processo. Seu código deve verificar o valor de retorno do `Exec` para lidar com esse erro graciosamente. Simplesmente ignorar o valor de retorno pode levar a bugs sutis e difíceis de fugir.


Exemplo (c):

`` `c
#include
#include
#include
#include

int main () {
int ret =execl ("./ nãoxistent_program", "nãoxistent_program", nulo);
if (ret ==-1) {
fprintf (stderr, "execl falhou:%s \ n", strerror (errno));
retornar 1; // indica um erro
}
// Esta linha só será alcançada se o execl for bem -sucedido (o que não será neste exemplo)
printf ("Isso não deve ser impresso. \ n");
retornar 0;
}
`` `

Este código tenta executar um programa inexistente. A chamada `Execl` falhará,` errno` será definida (provavelmente `enoent`),` strerror (errno) `fornecerá uma mensagem de erro legível por humanos e o programa imprimirá o erro e sairá com um status diferente de zero. Se o arquivo existisse, mas não tivesse permissão de execução, `errno` provavelmente seria 'eacces'.

Em resumo, uma chamada falhada `Exec` devido a um arquivo não executável é um erro de tempo de execução que deve ser tratado explicitamente dentro do seu programa para evitar comportamentos inesperados. Sempre verifique o valor de retorno do `Exec` e lide com erros adequadamente.

Anterior :

Próximo :
  Os artigos relacionados
·Como um trabalho é executado periodicamente no sistema…
·Cinco comandos importantes em Unix 
·Como você faz um novo comando no Unix? 
·O que são palavras de comandos? 
·Quais são os usos da linha de comando? 
·Como adicionar Endereço de Gateway em SCO Unix 
·Como obter um número de linha de um padrão em UNIX 
·Por que o Unix é tão popular hoje? 
·Qual é a finalidade das colunas em um texto? 
·Qual é a função do CD4017 IC? 
  Artigos em destaque
·As diferenças entre o Windows Server 2003 Standard & E…
·O que significa o Windows 7 pré -carregado? 
·Como instalar o Liquibase no Ubuntu ou Debian Linux 
·Como consertar um menu lento do botão direito (context…
·Um Mac pode ser monitorado no servidor Windows? 
·Como configurar uma proteção de tela através de Grou…
·Como mostrar a barra lateral do Vista 
·Como desativar um mouse touchpad no Windows 7 
·O que o termo incorporado Linux se refere? 
·Como faço para corrigir inicialização lenta no XP 
Cop e direita © Rede de conhecimento computador https://ptcomputador.com Todos os Direitos Reservados