🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #8174

Re: pipes

#8174
From: nyenyus
Date: Thu, 26 Dec 2002 12:12
69 lines
3396 bytes
"Stanley" <triatlonn@terra.es> escribi� en el mensaje
news:aueo1v$tjr$1@news.ya.com...
> Muy buenas, sigo con mis indagaciones, si alguien puede ayudarme:
>
> como se crea una pipa, porque veo varias formas  y no lo tengo claro,
quiz�s
> es muy obvio pero soy novato:
>
> if (pipe(p) < 0) error("Creando pipe ordin�ria");
> res = pipe(p
>
> Me podriais decir que hace cada sentencia �?
> --------------------------------------------------------------------------
--
> ------------------------------------
Hace demasiado que no utilizo las pipes. si no recuerdo mal, un ejemplo
puede ser el siguiente:

int tuberia[2];
if (p�pe(tuberia)==-1) tratamiento_error();
// escribir en la tuberia:
write(tuberia[1],el_que,tama�o_el_que);
//pa leer con read.
----------------------------------------------------------
tuberia sera el array a traves del cual te comunicas con la tuberioa. Si no
recuerdo mal, a traves de tuberia[0] recibirias datos, y los
tienes k enviar a traves de tuberia[1].

> close(1); dup(p[1]);---- esto sirve para cerrar el canal de salida
> (pantalla) y para redireccionarlo a la pipe ?  - tampoco lo entiendo
porque
> buscando, he visto que el dup era para duplicar?�?  -no me aclaro.
> --------------------------------------------------------------------------
--
> ------------------------------------

Con close simplemente (como ya sabras) cierras en canal 1 (k creo k si es el
de salida estandar (pantalla), sino k alguien me corrija). Con DUP
simplemente estas
asignando el PRIMER descriptor de dispositivo (canal) libre (o disponible)
al parametro que le indicas.

>
> execlp("ls", "ls", "-l", "/usr/bin", (char *)0);
>  -Aqui estoy lanzando el proceso ls, y como parametros -l y /usr/bin  pero
> para que sirve el char*0 ??
> --------------------------------------------------------------------------
--
> ------------------------------------
El (char^*) 0 simplemente es para indicarle a la funcion execlp que no hay
mas parametros que recive.

> read(0,&jug,sizeof(jug));
>
> - Sabeis que parametros se utilizan en los write y read, ?
> --------------------------------------------------------------------------
--
> -------------------------------------
www.google.com seguro que lo encuentras :).


>
> Si podeis ayudarme en alguna de las pregunas , os lo agradecere, necesito
> aprender estos temas.
> Un saludo,
>
>
>
Technical Details
Message-ID: <auern3$6fj90$1@ID-165466.news.dfncis.de>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed.arcor-online.net!fu-berlin.de!uni-berlin.de!162.red-80-36-231.pooles.rima-tde.NET!not-for-mail
References: <aueo1v$tjr$1@news.ya.com>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,65f5eead70f01bbd
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2002-12-26 04:12:24 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed.arcor-online.net!fu-berlin.de!uni-berlin.de!162.red-80-36-231.pooles.rima-tde.NET!not-for-mail
From: "nyenyus" <nyenyus@smoke.com>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: pipes
Date: Thu, 26 Dec 2002 13:12:12 +0100
Lines: 71
Message-ID: <auern3$6fj90$1@ID-165466.news.dfncis.de>
References: <aueo1v$tjr$1@news.ya.com>
NNTP-Posting-Host: 162.red-80-36-231.pooles.rima-tde.net (80.36.231.162)
X-Trace: fu-berlin.de 1040904743 6802720 80.36.231.162 (16 [165466])
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1106
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106