我正在使用 Linux 和 Matlab R2017。
我有一个 C 程序,它通过 printf()
有一个无限输出,我想将其定向到 matlab。
我可以像这样运行这个程序 unix('./prog'),
之后我有输出,但我不知道如何将它保存到 matlab 数组。
实际上,我想让它像 FIFO,但不知道如何...... 据我所知,在 matlab 中没有像 bash 中那样的管道。
最佳答案
它与C语言的关系不大。恕我直言,唯一的 C 点是您需要确保 stdout 是否可以在您的 C 程序中进行缓冲。它不应该是,你将不得不显式地将它设置为无缓冲 (setbuff(stdout, NULL);
) 或 fflush
是当你需要输出立即可用时.
对于其余部分,我会在文件系统级别使用 fifo 文件。这样的 fifo 可以用 mkfifo fifo_path
创建。然后你要求你的 matlab 程序从 fifo 读取它的输入并将你的 C 程序的输出重定向到那里:unix('./prog >/path/to/fifo')
关于c - 将输出从 C 重定向到 Matlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48260516/