我正在使用Linux& Matlab R2017。
我有一个C程序,它通过printf()
具有无限输出,我想将其指向matlab。
我可以像这样unix('./prog'),
运行这个程序
之后我有输出,但我不知道如何将它保存到matlab数组。
实际上,我想让它像FIFO一样,但不知道如何...... 据我所知,在matlab中没有像bash那样的管道。
答案 0 :(得分:0)
它只与C语言松散相关。恕我直言,唯一的C点是你需要确定是否可以在你的C程序中缓冲stdout。它不应该是,当你需要输出立即可用时,你必须明确地将它设置为无缓冲(setbuff(stdout, NULL);
)或fflush
。
对于其他人,我会在文件系统级别使用fifo文件。可以使用mkfifo fifo_path
创建这样的fifo。然后你要求你的matlab程序从fifo读取它的输入并重定向你的C程序的输出:unix('./prog > /path/to/fifo')