进程间可以通过shmget/shmat等一系列函数共享内存。
参照这些博客,我们可以实现:
http://nnssll.blog.51cto.com/902724/199808 (原文有错,注意看评论)
http://wellwy.blog.51cto.com/1609602/492083
不过在尝试过程中遇到了一些困难:
shm_addr=(char*)shmat(shm_id,NULL,0); 返回-1。
perror 打印出:permission denied
查看了网上的一些资料,说是要shmget的时候要加上0666权限,比如:
shm_id=shmget(key,4096,IPC_CREAT|0666);
但是还是不行。
后来想到ftok的时候用到了一个filepath
key=ftok(filepath,0);
这个ftok必须是已存在真实文件,是不是文件的权限问题?
用chmod 777 filepath之后果然可以了。。。
如果还不行的话可以有sudo运行程序试一下。