Spero di fare qualcosa di sbagliato, ma sembra che kdb non possa leggere i dati dalle pipe denominate (almeno su Solaris). Blocca fino a quando non viene scritto, ma non restituisce nessuno dei dati che sono stati scritti.È possibile leggere kdb da una pipe denominata?
posso creare un file di testo:
$ echo Mary had a little lamb > lamb.txt
e KDB felicemente leggerlo:
q) read0 `:/tmp/lamb.txt
enlist "Mary had a little lamb"
posso creare una named pipe:
$ mkfifo lamb.pipe
e cercando di leggere da esso:
q) read0 `:/tmp/lamb.pipe
causerà il blocco di kdb. Scrivendo al tubo:
$ cat lamb.txt > lamb.pipe
causerà KDB per tornare alla lista vuota:
()
Può KDB leggere da named pipe? Dovrei semplicemente arrendermi? Non penso sia una cosa delle autorizzazioni (ho provato a impostare -m 777
sul mio comando mkfifo
ma questo non ha fatto differenza).
Sono contento che blocchi - sembra il comportamento corretto per un flusso continuo - ma restituisce quindi la lista vuota, anziché i dati che sono stati scritti. È quasi come se stesse aspettando EOF e poi buttasse via qualsiasi cosa leggesse prima di quel punto: s –
Sì, potrebbe essere il momento giusto. L'algoritmo sottostante fornirebbe la risposta, quindi potrebbe valere la pena di inviare un'e-mail a [email protected] per ottenere chiarezza sulla situazione. – algolicious