[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: