[pyar] clonar un pipe
Daniel Moisset
dmoisset en machinalis.com
Lun Oct 11 15:37:19 ART 2010
2010/10/11 Luciano Bello <lbello en gmail.com>:
> In [1]: import os
> In [2]: (r1,w1)=os.pipe()
> In [3]: os.write(w1, "123456789")
> Out[3]: 9
> In [4]: os.read(r1,2)
> Out[4]: '12'
> In [5]: (r2,w2,)=clone_pipe(r1,w1)
> In [6]: os.read(r1,2)
> Out[6]: '34'
> In [7]: os.read(r2,2)
> Out[7]: '34'
>
> Alguna idea si esta función existe? En cado de no existir,
> como la harían?
No que yo sepa. El tema es que el buffer que queres duplicar esta en
kernel-space, con lo cual tiene que ser una syscall; no son tantas y
no vi nada parecido nunca.
Si lo tuviera que hacer en terminos generales haría un modulo de
kernel, con una syscoll que duplique el objeto pipe en sí...
Si tenes alguna restriccion de quienes acceden al pipe (por ejemplo
sabes que todo es python puro y no hay nadie usando el filedescriptor
directamente) posiblemente podes hacer algo que emule el
comportamiento del pipe
Saludos,
D.
More information about the pyar
mailing list