2013/12/23 Alex 'CAVE' Cernat <[email protected]>

> salut
>
> toata lumea e cu sarmale, eu stau dupa perle :-P
>
> situatia este urmatoarea: dintr-un script perl rulez alte scripturi
> externe si am nevoie sa le capturez output-ul (nu am nevoie de ele in
> scriptul parinte, doar sa ajunga undeva pe disc)
> o solutie simpla ar fi system("/path/to/exec param param param rampampam
> 1>/path/to/log 2>&1") ceea ce e foarte functionala, dar parca mai frumos
> ar fi cu system(exec, param, param, param), insa daca prima varianta
> merge brici, a doua varianta scoate output-ul din copil si il amesteca
> cu stdout-ul perlului, ceea ce nu e prea frumos
> ar mai exista varianta ca inainte de system sa deschid fisierul de
> loguri ca stdout/stderr, dar in cazul asta pierd stdout-ul original al
> perlului, de care am nevoie ca mai am niste mesaje prin el
>
> vreo solutie cat mai simpla exista ? sau raman momentan la system cu
> comanda in string ?
>
>
Poti trimite outputul in alte file descriptors (fie redirectezi stdout si
stderr inainte de system() si le aduci la loc, fie daca faci un fork si
trimiti copilul sa pasca unde trebuie), pe care le poti trimite unde-ti
convine.

Daca-ti da unixul doar 3 filedescriptors nu inseamna ca nu poti sa-ti mai
faci, you know?

-- 
P.
_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui