Re: Pipes en Linux

1999-01-21 Por tema Marcelo E. Magallon
On Thu, Jan 21, 1999 at 09:45:28AM +0100, Antonio Castro wrote:

> Estamos hablando de los límites para el número de ficheros abiertos así
> que no pensaras que solo puede haber 256 ficheros en tu Linux no ?
> El maximo de 256 se refiere a el número de ficheros abiertos en el
> sistemas. Todos los pipes tienen dos descriptores. Uno de entrada y
> otro de salida. Cada proceso que habrá el pipe lo hará con un descriptor
> distinto.

Allí entonces me surje una duda... cuando dije que un 'pipe' era un archivo
debí ser un poco más explícito... popen devuelve un puntero a FILE (ergo,
"un pipe es un archivo"... efectos de una traducción mala y apresurada).
Cuando yo escribo (fprintf et al) a este archivo uso la misma variable que
cuando lo leo.  En _IO_FILE (que es lo que FILE es a final de cuentas) hay
*un* número para el descriptor del archivo (sii estoy leyendo bien la
definición del tipo -- es muy probable que esto sea donde estoy mal)

Por otro lado, 'pipe' si devuelve dos descriptores de archivo.  Uno lo uso
para leer y el otro lo uso para escribir...

¡No entiendo!


Marcelo


Re: Pipes en Linux

1999-01-21 Por tema Antonio Castro
On Wed, 20 Jan 1999, =?iso-8859-1?Q?Virgilio_G=F3mez_Rubio?= wrote:

> On Mon, 18 Jan 1999, Antonio Castro wrote:
> 
> > On Mon, 18 Jan 1999, Marcelo E. Magallon wrote:
> > 
> > > On Sun, Jan 17, 1999 at 10:55:20PM +0100, José Antonio Pozo wrote:
> > > 
> > > > Hola, ¿cuantas pipes se pueden abrir a la vez en C?. Gracias
> > > 
> > > de /usr/include/linux/limits.h tienes:
> > > 
> > > #define OPEN_MAX 256/* # open files a process may have */
> > > 
> > > y un 'pipe' es un archivo, así que me imagino que la respuesta es 256... o
> > > 253 (stdio, stdout, stderr están abiertos al iniciar el programa)
> >^
> > 
> > Un pipe no es un archivo.
> > Un pipe tiene asociados una pareja de descriptores de ficheros. (No uno)
> > 
>   Creo que hay dos tipos de tuber'ias: las "normales" y las tuber'ias con
> nombre. Estas 'ultimas s'i que aparecen como un fichero m'as. Hay un libro
> llamada "Unix, programaci´on avanzada" donde explica, entre otras cosas,
> las tuber´ias. Es un libro MUY bueno. No recuerdo la editorial (tal vez
> Rama?), pero el autor es profesor en alguan universidad de Madrid.

Estamos hablando de los límites para el número de ficheros abiertos así
que no pensaras que solo puede haber 256 ficheros en tu Linux no ?
El maximo de 256 se refiere a el número de ficheros abiertos en el
sistemas. Todos los pipes tienen dos descriptores. Uno de entrada y
otro de salida. Cada proceso que habrá el pipe lo hará con un descriptor
distinto.

Si quieres ver todos los descriptores abiertos por un proceso
puedes hacerlo en /proc//fd  siendo  el número del pid del
proceso.

> Virgilio
> 
> --  
> Unsubscribe?  mail -s unsubscribe [EMAIL PROTECTED] < /dev/null

---
En caso de contestar a la lista mandame copia personal.

/\ /\  Los mas importantes desarrolladores de Bases de datos 
  \\W//están portando sus productos a Linux. Porque crees tu
 _|0 0|_   que será ?Yo creo que Linux es el futuro.
+-oOOO--(___o___)--OOOo--+ 
|  . . . . U U . . . . Antonio Castro Snurmacher |  
| http://slug.ctv.es/~acastro.[EMAIL PROTECTED] |
+()()()--()()()--+  


Re: Pipes en Linux

1999-01-20 Por tema Virgilio Gómez Rubio



On Mon, 18 Jan 1999, Antonio Castro wrote:

> On Mon, 18 Jan 1999, Marcelo E. Magallon wrote:
> 
> > On Sun, Jan 17, 1999 at 10:55:20PM +0100, José Antonio Pozo wrote:
> > 
> > > Hola, ¿cuantas pipes se pueden abrir a la vez en C?. Gracias
> > 
> > de /usr/include/linux/limits.h tienes:
> > 
> > #define OPEN_MAX 256/* # open files a process may have */
> > 
> > y un 'pipe' es un archivo, así que me imagino que la respuesta es 256... o
> > 253 (stdio, stdout, stderr están abiertos al iniciar el programa)
>^
> 
> Un pipe no es un archivo.
> Un pipe tiene asociados una pareja de descriptores de ficheros. (No uno)
> 
  Creo que hay dos tipos de tuber'ias: las "normales" y las tuber'ias con
nombre. Estas 'ultimas s'i que aparecen como un fichero m'as. Hay un libro
llamada "Unix, programaci´on avanzada" donde explica, entre otras cosas,
las tuber´ias. Es un libro MUY bueno. No recuerdo la editorial (tal vez
Rama?), pero el autor es profesor en alguan universidad de Madrid.



Virgilio


Re: Pipes en Linux

1999-01-19 Por tema Antonio Castro
On Mon, 18 Jan 1999, Marcelo E. Magallon wrote:

> On Sun, Jan 17, 1999 at 10:55:20PM +0100, José Antonio Pozo wrote:
> 
> > Hola, ¿cuantas pipes se pueden abrir a la vez en C?. Gracias
> 
> de /usr/include/linux/limits.h tienes:
> 
> #define OPEN_MAX 256/* # open files a process may have */
> 
> y un 'pipe' es un archivo, así que me imagino que la respuesta es 256... o
> 253 (stdio, stdout, stderr están abiertos al iniciar el programa)
   ^

Un pipe no es un archivo.
Un pipe tiene asociados una pareja de descriptores de ficheros. (No uno)

stdin, stdout, stderr no están  necesariamente abiertos. Un proceso hereda
los descriptores de ficheros abiertos del proceso padre como parte del
entorno heredable. El padre puede cerrar estos descritores.


>   Marcelo
> 
> --  
> Unsubscribe?  mail -s unsubscribe [EMAIL PROTECTED] < /dev/null

---
En caso de contestar a la lista mandame copia personal.

/\ /\  Los mas importantes desarrolladores de Bases de datos 
  \\W//están portando sus productos a Linux. Porque crees tu
 _|0 0|_   que será ?Yo creo que Linux es el futuro.
+-oOOO--(___o___)--OOOo--+ 
|  . . . . U U . . . . Antonio Castro Snurmacher |  
| http://slug.ctv.es/~acastro.[EMAIL PROTECTED] |
+()()()--()()()--+  


Re: Pipes en Linux

1999-01-18 Por tema Marcelo E. Magallon
On Sun, Jan 17, 1999 at 10:55:20PM +0100, José Antonio Pozo wrote:

> Hola, ¿cuantas pipes se pueden abrir a la vez en C?. Gracias

de /usr/include/linux/limits.h tienes:

#define OPEN_MAX 256/* # open files a process may have */

y un 'pipe' es un archivo, así que me imagino que la respuesta es 256... o
253 (stdio, stdout, stderr están abiertos al iniciar el programa)


Marcelo


Pipes en Linux

1999-01-17 Por tema José Antonio Pozo
Hola, ¿cuantas pipes se pueden abrir a la vez en C?. Gracias