[Cascavel-pm] Res: Print Loading ao executar system

Alceu Rodrigues de Freitas Junior glasswalk3r em yahoo.com.br
Terça Dezembro 9 15:08:59 PST 2008


Patty, o que o Luis sugeriu mais abaixo faz exatamente o que você
precisa e ainda te dá controle sobre os processos para exibir alguma
coisa no terminal para o usuário. Você não precisa ficar presa ao system().

Agora, na minha opinião, se você está usando Perl só para dar um system
no programa em Fortran, então eu usaria shell script mesmo. Você executa
o processo do Fortran em background depois bisbilhota ele com um

ps ax | grep '^<PID do Fortran>'

Mas essa lista é de Perl e eu já fui herege demais. :-)

Agora, se você está afim de soluções mais elegantes e com valores
vitamínicos maiores: http://search.cpan.org/~sisyphus/Inline-0.45/Inline.pod

[]'s
Alceu

Patty Silva escreveu:
> OIii.. entao..
> 1) Aparentemente nao tenho problema :) meu programa esta funcionando ,
> só queria que o usuário soubesse que esta executando um arquivo :D
> 2) Eu preciso sim chamar o system. ele chama um programa em Fortran que
> le alguns arquivos de entrada ou arquivos de um diretorio :D
> 
> È só perfumaria!! :D
> 
> Muito Obrigada
> Até mais...
> 
> ------------------------------------------------------------------------
> *De:* Luis Motta Campos <luismottacampos em yahoo.co.uk>
> *Para:* Cascavel Perl Mongers <cascavel-pm em pm.org>
> *Enviadas:* Terça-feira, 9 de Dezembro de 2008 12:02:24
> *Assunto:* Re: [Cascavel-pm] Print Loading ao executar system
> 
> Patty Silva wrote:
>> Pessoal, Tem como eu imprimir na tela "Loading ................."
>> quando executa o system?? Para o usuário saber que não travou o
>> script, e sim esta executando o system('./exe') algo assim!!?
>>
>> Eu fiz usando o : $|=1; print "please wait";
>> system("../bin/teste.exe"); print "Thanks for waiting";
>>
>> Mas como eu imprimir pontos ( ..................) ao executar??
> 
> Hum.
> 
> Não tem como fazer isso com uma chamada de system(). system(), na
> prática, executa uma chamada de fork() para executar o programa que você
> passou como parâmetro, e o processo principal executa wait() no processo
> filho (efetivamente "desistindo" de usar qualquer ciclo de processador
> até que o processo filho termine).


Mais detalhes sobre a lista de discussão Cascavel-pm