c - 将输出从 C 重定向到 Matlab

标签 c linux matlab

我正在使用 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/

相关文章:

c++ - 使用 Chebyshev 距离探索矩阵

c++ - 使用 strcat 将字符附加到 C 中的字符串

linux - 替换文本文件中的模式

c - 没有 Goto 的更好方法?

linux - 将多播路由添加到 linux 多播路由表

linux - 编辑和编译 MPIs FORTRAN 代码

matlab - 在 C DLL 中使用 delphi 数据类型的问题

matlab - 在 MATLAB 中计算音频音高?

matlab - 将标志传递给 Matlab 函数的最巧妙方法是什么?

c - 如何在 C 中的字符串文字中存储私钥?