Article View: es.comp.os.linux.programacion
Article #17755Re: Coger la salida de otro programa
From: gpanjav
Date: Mon, 15 Nov 1999 00:00
Date: Mon, 15 Nov 1999 00:00
37 lines
2392 bytes
2392 bytes
rvm <rvm@XXlinuxfan.com> escribi� en es.comp.os.linux.programacion: > Esto lo he hecho desviando la salida a un fichero temporal y luego el > programa principal lee los datos de all� (de vez en cuando comprueba si > el fichero ha sido modificado y lee los datos nuevos). En el Linux Programmer's Guide, hay una secci�n que habla de tuber�as con un ejemplo muy bueno. Puedes utilizar popen() (como ya te han indicado) o hacer algo as�: -Crear una tuberia (pipe()) -Hacer un fork() -En el proceso padre: *Cerrar la tuber�a de escritura *Leer de la tuber�a de lectura (cuidado con SIGPIPE!) -En el proceso hijo: *Cerrar la tuber�a de lectura *Utilizar la funci�n dup2() para poner la tuber�a de lectura como stdout y stderr del proceso. *Ejecutar el programa (elige una de exec*) A m� me gusta m�s as� y es m�s instructivo porque as� te enteras mejor de lo que hace popen(). Si quieres busco un trocito de c�digo que hace todo esto y lo 'posteo'. > Otra pregunta. Resulta que el programa fetchnews no es accesible por > cualquier usuario, pero mi programa debe poder ejecutarlo �c�mo diablos > lo hago? Me imagino que la soluci�n pasar� por activar el bit suid ese, > como en el kppp. Esto hay muchas formas de hacerlo. Una de ellas, podr�a ser: # chmod 4710 /usr/local/sbin/fetchnews # chown root.wheel /usr/local/sbin/fetchnews y hacer que el usuario que ejecuta el programa pertenezca al grupo wheel (o que el programa pertenezca al grupo wheel y el bit de guid activo (permisos 2700 o similares)).
Technical Details
Message-ID:
<80oij9$ol8$1@simancas.uva.es>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<begX3.1887$re6.65702@m2newsread.uni2.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,979d773d4b6ea533
X-Google-Attributes: gidf86c8,public
From: gpanjav@QUITAetsi.tel.uva.esPAM
Subject: Re: Coger la salida de otro programa
Date: 1999/11/15
Message-ID: <80oij9$ol8$1@simancas.uva.es>
X-Deja-AN: 548756421
Content-Transfer-Encoding: 8bit
References: <begX3.1887$re6.65702@m2newsread.uni2.es>
Content-Type: text/plain; charset=ISO-8859-1
X-Complaints-To: usenet@news.uva.es
X-Trace: simancas.uva.es 942656937 25256 157.88.129.100 (15 Nov 1999 09:08:57 GMT)
Organization: Universidad de Valladolid - Spain
Mime-Version: 1.0
User-Agent: tin/pre-1.4-981002 ("Phobia") (UNIX) (SunOS/5.6 (sun4u))
NNTP-Posting-Date: 15 Nov 1999 09:08:57 GMT
Newsgroups: es.comp.os.linux.programacion