Espero que esté haciendo algo mal, pero parece que kdb no puede leer datos de canalizaciones con nombre (al menos en Solaris). Bloquea hasta que se escriben pero luego no devuelve ninguno de los datos que se escribieron.¿Se puede leer kdb desde una tubería con nombre?
puedo crear un archivo de texto:
$ echo Mary had a little lamb > lamb.txt
y kdb felizmente leerlo:
q) read0 `:/tmp/lamb.txt
enlist "Mary had a little lamb"
puedo crear una canalización con nombre:
$ mkfifo lamb.pipe
y tratar de leer de él:
q) read0 `:/tmp/lamb.pipe
hará que kdb se bloquee. Escrito a la tubería:
$ cat lamb.txt > lamb.pipe
hará que kdb para devolver la lista vacía:
()
Puede KDB leer de canalizaciones con nombre? ¿Debería darme por vencido? No creo que sea un permiso (intenté configurar -m 777
en mi comando mkfifo
, pero eso no hizo ninguna diferencia).
Me complace que se bloquee, parece el comportamiento correcto para una transmisión continua, pero luego devuelve la lista vacía, en lugar de los datos que se escribieron. Es casi como si estuviera esperando EOF y luego descarta lo que haya leído antes de ese punto: s –
Sí, bien podría ser el tiempo de espera. El algoritmo subyacente proporcionaría la respuesta por lo que podría valer la pena enviar un correo electrónico a [email protected] para obtener claridad sobre la situación. – algolicious