[Cascavel-pm] captura de mensagens de programa

Alceu Rodrigues de Freitas Junior glasswalk3r em yahoo.com.br
Sexta Fevereiro 28 13:57:06 CST 2003


Ol lista,

Estou tentando criar um CGI que executa um comando de sistema. Como iniciativa de torn-lo mais seguro, eu ativei o modo Taint (-T).

Para poder executar o programa sem chamar o shell eu tenho que fazer:

system ("/usr/bin/programa","parametro1","parametro2");

ou ento

my $pid = open (PROG,"-|");
die "cannot fork $!" unless defined $pid;
unless ($pid) {
	exec /usr/bin/programa, $parametro1, $parametro2 or die "cannot open pipe programa: $!";
}

Como eu quero capturar a sada do programa, eu logicamente deveria utilizar a segunda forma. O problema  que eu queria testar a execuo do programa, e em caso de erro, utilizar a prpria mensagem do programa e criar uma mensagem acompanhada de header http e tudo o mais.

my $pid = open (PROG,"-|");
die "cannot fork $!" unless defined $pid;
unless ($pid) {
	my $resultado = exec /usr/bin/programa, $parametro1, $parametro2;
}

A varivel escalar $resultado simplesmente no recebe valor algum! Eu no quero usar die para verificar a sada do programa, e sim checar o valor da varivel para exibir ou no uma mensagem de erro.

Algum j passou por situao semelhante? Eu variaes do uso de open, sem sucesso.

[]'s


-- 
Alceu Rodrigues de Freitas Junior
glasswalk3r em yahoo.com.br
---------------------------------------------------------------
"The 7 Deadly Sins are:/ Wealth without work/ Pleasure without
conscience/ Knowledge without character/ Business without
morality/ Science without humanity/ Worship without sacrifice/
Politics without principle" - Mahatma Ghandi

ahz^njf&Wֈ׫:jj(ܢ{kkmnkr



Mais detalhes sobre a lista de discusso Cascavel-pm