[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