Re: usando o shell a partir de programa em C
On Wed, 20 Jun 2001 17:24:40 -0300 (EST)
Jackson Gois <jacksong@iq.usp.br> wrote:
>
> Oi pessoal
>
> Gostaria de saber dos experts de plantao como fazer para usar comandos
> do shell durante a execucao de um programa em C. Ja tentei o execl() mas
> nao deu certo. A sintaxe que usei foi :
>
> execl("/bin/rm", "rm", "-rf", nome_do_arquivo, 1)
>
> Onde foi que eu errei ?
> Agradeco antecipadamente a ajuda.(ah, uso o bash...)
A família das chamadas exec*() substituem o processo em execução. Se
você simplesmente faz isso, é o rm que vai correr em lugar do seu
programa (além do fato que a lista de argumentos deve ser acabada em
NULL; às vezes ajuda ler as páginas do manual).
Você tem duas opções. Pode usar fork() para criar outro processo e
chamar exec* no filho. Então o processo pai pode aguardar o resultado
disso e você ainda tem possibilidade de matar o processo filho por
exemplo no caso de um timeout. Mas o normal é usar system().
--
Christoph Simon
datageo@terra.com.br
---
^X^C
q
quit
:q
^C
end
x
exit
ZZ
^D
?
help
shit
.
Reply to: