Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

zecapistolas

Encontrar comando em Linux

Mensagens Recomendadas

zecapistolas    0
zecapistolas

Boas,

Preciso de uma função escrita em C, que me procure um determinado comando no Linux, mas não faço ideia por onde começar.... Tipo, o "who" encontra-se em "/usr/bin/who"....

Dicas, aceitam-se....  :biggrin:

cumps  :thumbsup:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Ferreira    0
Ferreira

Se queres uma função em C que faça isso usa um fork seguido de um exec.

Se queres fazer a tua própria implementação disso é mais complicado...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
zecapistolas    0
zecapistolas

Se queres uma função em C que faça isso usa um fork seguido de um exec.

Se queres fazer a tua própria implementação disso é mais complicado...

Pois, mas o resultado de "exec" é um int e não uma String.... Eu quero utilizar o caminho internamente no programa....

cumps  :thumbsup:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
IceBrain    1
IceBrain

MAN which:

It does this by searching the PATH for executable files matching the names of the arguments

Para obteres a variável de ambiente PATH só precisas de fazer:

char * path;
path = getenv("PATH");

Vais obter um string do tipo ":/bin:/etc:/usr/bin:/usr/new/X11:/usr/new:/usr/local/bin". Depois só tens que separar a string pelos ":" (*) e depois procurares o ficheiro binário nessas pastas (**)

*podes usar a função strtok, mas não te esqueças que ela altera a string, portanto tens que copiá-la (strncpy) primeiro.

**podes usar a função stat() para ver se o ficheiro existe:

if(stat("/usr/bin/hello",&st) == 0) printf("o ficheiro existe!");

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade