我希望我做錯了什麼,但似乎kdb無法從命名管道讀取數據(至少在Solaris上)。它會阻塞,直到它們被寫入,但不會返回任何寫入的數據。kdb可以從命名管道讀取嗎?
我可以創建一個文本文件:
$ 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命名管道讀?我應該放棄嗎?我不認爲這是一個權限的事情(我試圖在我的mkfifo
命令上設置-m 777
,但這沒有什麼區別)。
我很高興它阻止 - 這似乎是連續流的正確行爲 - 但它然後返回空列表,而不是寫入的數據。這幾乎就像是在等待EOF,然後在該點之前扔掉它所讀取的任何東西:s – 2012-02-10 10:45:58
是的,它可能會超時。底層算法將提供答案,因此可能需要發送電子郵件至[email protected]以瞭解情況。 – algolicious 2012-02-10 11:59:47