gpt4 book ai didi

c - 在 Matlab 和 C 之间共享数据

转载 作者:太空宇宙 更新时间:2023-11-04 08:47:44 25 4
gpt4 key购买 nike

我的一些 friend 写了一个程序,它使用C程序从网络(UDP)接收数据并使用Matlab处理接收到的数据。两个文件即。 'Data file'和'Control file'用于Matlab和C之间的数据通信,方案如下。

  1. C 程序从网络接收数据,如果'控制文件'包含'0',则将接收到的数据写入'数据文件'。数据写入完成后,'控制文件'中的'0'被替换为'1'。
  2. Matlab 程序不断检查“控制文件”中的“1”,并在“控制文件”中读取“1”后立即从“数据文件”中读取数据。读取和处理数据后,Matlab 将“控制文件”中的“1”替换为“0”。

基本上,该方案试图使用“控制文件”作为“锁”来安全地处理“数据文件”中的数据。每 1 毫秒连续接收一次数据,处理需要软实时。

虽然声称一切正常,但我觉得这里有些可疑。原则上,我们应该使用类似于信号量的东西来正确锁定资源……对吧?这个方案有什么缺陷?有没有更好的替代方案?

编辑:现在我看到有人在 Launch one C++ application from another, and communicate with it 上提出了类似的“快速而肮脏”的技术。

我想确切地知道为什么这是一种“肮脏”的技术?它会在所有情况下都成功吗?

最佳答案

您必须在您的案例中使用文件锁定 ( read wiki )

此外,您可能有兴趣查看 MEX 文件,它提供了 Matlab 和 C 之间的接口(interface),因此它将允许从 Matlab 调用 C 函数。参见 herehere

关于c - 在 Matlab 和 C 之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20978798/

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