[Cascavel-pm] Print Loading ao executar system

Luis Motta Campos luismottacampos em yahoo.co.uk
Terça Dezembro 9 04:02:24 PST 2008


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).

Assim, você tem de encontrar outra solução para o seu problema.

Eu, como sempre, vou fazer as perguntas que você não costuma responder:

1. Qual é o teu "problema maior", aquele que você estava tentando
resolver antes de esbarrar com este "detalhe de implementação" do system()?

2. Você precisa mesmo chamar system() para resolver o teu problema? Não
tem como um usuário executar diretamente o programa que você está
executando para ele? E não existe uma forma de você implementar (talvez
usando uma biblioteca Perl pronta) a funcionalidade do programa que você
está chamando com system(), para ter controle e poder imprimir os
pontinhos você mesma?

Espero que isso ajude.
Putamplexos,
-- 
Luis Motta Campos is a software engineer,
Perl Programmer, foodie and photographer.


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