任务:
实现两个不同的进程通过共享内存实现对数据的读写
思路:
1.建立一个共享内存的通道 fork shmget shmat
2.gets(p)获取数据信息 puts(p)输出数据信息
//进程A
#include<stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
int main(int argc,char *argv[])
{
int key,id;
char *p;
//调用ftok函数
key = ftok("./1.txt",1);
printf("key = %d\r\n",key);
id = shmget(key,4096,IPC_CREAT|0666);
printf("id = %d\r\n",id);
//将共享内存映射到进程自己的空间
p = (char *)shmat(id,NULL,0);
//往共享内存里面写入数据
fgets(p,100,stdin);//gets(p)函数版本老旧
//将共享内存里面的数据输出
puts(p);
while(1);
exit(0);
}
//进程B
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include<stdio.h>
#include <stdlib.h>
int main(int argc,char *argv[])
{
int key,id;
char *p;
//调用ftok函数
key = ftok("./1.txt",1);
printf("key = %d\r\n",key);
id = shmget(key,4096,IPC_CREAT|0666);
printf("id = %d\r\n",id);
//将共享内存映射到进程自己的空间
p = (char *)shmat(id,NULL,0);
//将共享内存里面的数据输出
puts(p);
while(1);
exit(0);
}
养家糊口的小广告:
1.好好敲代码,来年当个小码农
2.《富豪赚钱秘籍》仅剩9份。如果想要购买,请先关注,然后私信博主。
3.《如何找女朋友》剩余28份。如果想要购买,请先关注,然后私信博主。
4.《MACD战法总结》剩余42份。如果想要购买,请先关注,然后私信博主。