writemem.c

来自「linux ipc linux 下进程间通信」· C语言 代码 · 共 33 行

C
33
字号
/*writemem.c*/
#include <sys/mman.h>
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>

#include "datastruct.h"

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, sizeof(people)*5-1, 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 + -
显示快捷键?