不同的进程之间的内存地址空间是相互隔离的,所以不能直接共享。但是,可以通过使用共享内存的方式来实现不同进程之间的数据共享。
共享内存是一种特殊的内存映射,它允许不同的进程访问同一块物理内存,并且这些进程可以通过同一内存地址来读写数据。在Linux系统中,可以使用shmget、shmat等函数来创建和访问共享内存。
以下是一个简单的示例代码,展示了如何在不同进程之间共享内存:
进程1:
#include
#include
#include
#include
#include
#include
#define SHM_KEY 12345
#define SHM_SIZE 1024
int main()
{
// 创建共享内存
int shmid = shmget(SHM_KEY, SHM_SIZE, IPC_CREAT | 0666);
if (shmid == -1) {
perror("shmget");
exit(1);
}
// 连接共享内存
char *shmaddr = shmat(shmid, NULL, 0);
if (shmaddr == (char *)-1) {
perror("shmat");
exit(1);
}
// 写入数据
strcpy(shmaddr, "Hello, world!");
// 分离共享内存
if (shmdt(shmaddr) == -1) {
perror("shmdt");
exit(1);
}
return 0;
}
进程2:
#include
#include
#include
#include
#include
#include
#define SHM_KEY 12345
#define SHM_SIZE 1024
int main()
{
// 连接共享内
上一篇:不同进程中的同一用户
下一篇:不同进程中的阻塞和非阻塞赋值