On Wed, 20 Jun 2001 17:24:40 -0300 (EST) Jackson Gois <[EMAIL PROTECTED]> 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 [EMAIL PROTECTED] --- ^X^C q quit :q ^C end x exit ZZ ^D ? help shit .