gpt4 book ai didi

solaris - kdb 可以从命名管道读取吗?

转载 作者:行者123 更新时间:2023-12-02 13:36:17 25 4
gpt4 key购买 nike

我希望我做错了什么,但 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 可以从命名管道读取吗?我应该放弃吗?我不认为这是一个权限问题(我尝试在我的 mkfifo 命令上设置 -m 777 但没有什么区别)。

最佳答案

随着版本kdb+ v3.4 Q支持命名管道:取决于您是要实现流算法还是只是从管道中读取,请使用 .Q.fpsread1在 fifo 管道上:

要实现流式传输,您可以执行以下操作:

q).Q.fps[0N!]`:lamb.pipe

然后$ cat羔羊.txt>羔羊.pipe

将打印

,"Mary had a little lamb"

在你的 q session 中。通过用适当的函数替换 0N! 可以实现更有意义的算法。

要将文件的上下文读取到变量中,请执行以下操作:

q)h:hopen`:fifo://lamb.pipe
q)myText: `char$read1(h)
q)myText

"Mary had a little lamb\n"

查看有关命名管道的更多信息 here .

关于solaris - kdb 可以从命名管道读取吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9213984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com