将输出从C重定向到Matlab

时间:2018-01-15 09:54:35

标签: c linux matlab

我正在使用Linux& Matlab R2017。

我有一个C程序,它通过printf()具有无限输出,我想将其指向matlab。

我可以像这样unix('./prog'),运行这个程序 之后我有输出,但我不知道如何将它保存到matlab数组。

实际上,我想让它像FIFO一样,但不知道如何...... 据我所知,在matlab中没有像bash那样的管道。

1 个答案:

答案 0 :(得分:0)

它只与C语言松散相关。恕我直言,唯一的C点是你需要确定是否可以在你的C程序中缓冲stdout。它不应该是,当你需要输出立即可用时,你必须明确地将它设置为无缓冲(setbuff(stdout, NULL);)或fflush

对于其他人,我会在文件系统级别使用fifo文件。可以使用mkfifo fifo_path创建这样的fifo。然后你要求你的matlab程序从fifo读取它的输入并重定向你的C程序的输出:unix('./prog > /path/to/fifo')