map_normalfilewrite.c

来自「关于进程间通信的代码集锦2」· C语言 代码 · 共 36 行

C
36
字号
#include <sys/mman.h>#include <sys/types.h>#include <fcntl.h>#include <unistd.h>typedef struct{	char name[4];	int age;}people;int main(int argc,char** argv){	int fd,i;	people* p_map;	char temp;	fd=open(argv[1],O_CREAT|O_RDWR|O_TRUNC,00777);//	lseek(fd,-1,SEEK_SET);	lseek(fd,sizeof(people)*7-1,SEEK_SET);//	lseek(fd,0,SEEK_SET);	write(fd,"",1);	p_map=(people*)mmap(NULL,sizeof(people)*10,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);	close(fd);	temp='a';	for(i=0;i<10;i++)	{		temp+=1;		memcpy((*(p_map+i)).name,&temp,2);		(*(p_map+i)).age=20+i;	}	printf("initialize over \n");	sleep(10);	munmap(p_map,sizeof(people)*10);	printf("umap ok \n");		return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?