Mam nadzieję, że robię coś złego, ale wygląda na to, że kdb nie może odczytać danych z nazwanych potoków (przynajmniej w systemie Solaris). Blokuje, dopóki nie zostaną zapisane, ale potem nie zwraca żadnych danych, które zostały zapisane.Czy można odczytać kdb z nazwanego potoku?
mogę utworzyć plik tekstowy:
$ echo Mary had a little lamb > lamb.txt
i KDB chętnie czytać go:
q) read0 `:/tmp/lamb.txt
enlist "Mary had a little lamb"
mogę utworzyć nazwanego potoku:
$ mkfifo lamb.pipe
i próbuje odczytać z tego:
q) read0 `:/tmp/lamb.pipe
spowoduje zablokowanie kdb. Pisząc na rurze:
$ cat lamb.txt > lamb.pipe
spowoduje KDB powrócić pustą listę:
()
Czy KDB odczytu z nazwanych potoków? Czy powinienem po prostu zrezygnować? Nie sądzę, że jest to kwestia uprawnień (próbowałem ustawić -m 777
na mojej komendzie mkfifo
, ale to się nie zmieniło).
Cieszę się, że blokuje - to wydaje się prawidłowe zachowanie dla ciągłego strumienia - ale potem zwraca pustą listę, a nie dane, które zostały napisane. Wygląda prawie tak, jakby czekał na EOF, a następnie wyrzucił wszystko, co przeczytał przed tym punktem: s –
Tak, może to oznaczać, że upłynął czas. Podstawowy algorytm dostarczyłby odpowiedzi, więc warto wysłać wiadomość e-mail na adres [email protected], aby uzyskać jasność co do sytuacji. – algolicious