C++ 在c代码之间共享数据的最佳方式

C++ 在c代码之间共享数据的最佳方式,c++,raspberry-pi3,C++,Raspberry Pi3,我有在RPI上运行的3C代码。他们都从开机开始做一些事情(例如读取数据和驱动LCD) 我已经分别实现了这些代码,但是现在我需要在它们之间共享一个30字节的缓冲区 你对此有什么建议 program1.c<-----------> program2.c<-----------> program3.c buff[30] <-----------> buff[30] <-----------> buff[30] program1.c program2

我有在RPI上运行的3C代码。他们都从开机开始做一些事情(例如读取数据和驱动LCD)

我已经分别实现了这些代码,但是现在我需要在它们之间共享一个30字节的缓冲区

你对此有什么建议

program1.c<-----------> program2.c<-----------> program3.c
buff[30] <----------->   buff[30] <-----------> buff[30]
program1.c program2.c program3.c
buff[30]buff[30]buff[30]

您可以使用共享内存IPC,它只允许您从多个协作进程访问相同的物理内存。我说合作是因为他们需要小心同步,否则读取可能会观察到部分写入的数据等。这里有一个教程:

您可以使用共享内存IPC,它只允许您从多个合作进程访问相同的物理内存。我之所以说合作,是因为他们需要注意同步,否则读取可能会观察到部分写入的数据等。这里有一个教程:

您基本上希望在这些进程之间实现IPC。就个人而言,我想使用
FIFO
(一种命名管道),因为它们为您实现了队列结构。因此,您可以更多地关注数据解释,而不是同步问题


可能会对您有所帮助。

您基本上希望在这些进程之间实现IPC。就个人而言,我想使用
FIFO
(一种命名管道),因为它们为您实现了队列结构。因此,您可以更多地关注数据解释,而不是同步问题


可能会对您有所帮助。

您愿意将3C源文件构建到单个可执行文件中吗?您的性能需求是什么?有很多不同的方法,各有优缺点。阅读:不,我只需要3个单独运行并共享数据缓冲区的可执行文件。最简单的方法是简单地使用共享文件。我已经读过关于IPC的书,在这方面有很多例子和概念,但是我想知道应该选择哪一个来满足我的需要:互斥体、信号量、套接字、unix域套接字、管道、共享内存你愿意将3C源文件构建成一个可执行文件吗?您的性能需求是什么?有很多不同的方法,各有优缺点。阅读:不,我只需要3个单独运行并共享数据缓冲区的可执行文件。最简单的方法是简单地使用共享文件。我已经读过IPC,在这方面有很多例子和概念,但是我想知道应该选择哪一个来满足我的需要:互斥、信号量、套接字、unix域套接字、管道、共享内存