Я надеюсь, что я делаю что-то не так, но кажется, что kdb не может читать данные из именованных каналов (по крайней мере в Solaris). Он блокируется до тех пор, пока они не будут записаны, но затем не возвращает ни одной из записанных данных.
Я могу создать текстовый файл:
$ echo Mary had a little lamb > lamb.txt
и kdb с радостью прочтет это:
q) read0 `:/tmp/lamb.txt
enlist "Mary had a little lamb"
Я могу создать именованный канал:
$ mkfifo lamb.pipe
и пытается прочитать с него:
q) read0 `:/tmp/lamb.pipe
приведет к блокировке kdb. Запись в трубу:
$ cat lamb.txt > lamb.pipe
приведет к тому, что kdb вернет пустой список:
()
Может ли kdb читать из именованных каналов? Должен ли я просто сдаться? Я не думаю, что это проблема с правами доступа (я попытался установить -m 777
в моей команде mkfifo
, но это не имело значения).