⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 write.c

📁 源码包中是我在学习Linux进程间通信时所写的关于五种通信方式(管道
💻 C
字号:
/*  * write shared memory*/#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <sys/mman.h>#include <string.h>#include <errno.h>#define	MAPPED_FILENAME		"/tmp/test.mmap.1"int main(){		int 	fd;	/* step 1, open file, get a fd */	if( (fd = open(MAPPED_FILENAME, O_RDWR|O_CREAT|O_EXCL, 0666)) < 0 )	{		perror( "open error" );		exit(1);	}	off_t	offset = 1024;	/* step 2, create a hole file */	if( lseek(fd, offset, SEEK_SET) == (off_t)-1 )	{		perror( "lseek failed" );		close( fd );		exit(1);	}	ssize_t	n;	if( (n = write(fd, " ", 1)) < 0 )	{		perror( "write error" );		exit(1);	}	void	*p;		/* step 3, mmap(), get a pointer */	if( (p = mmap(NULL, 1024, PROT_WRITE, MAP_SHARED, fd, 0)) == MAP_FAILED )	{		perror( "mmap error" );		close( fd );		exit(1);	}		close( fd );	fprintf( stdout, "mapped file to memory, size = %d\n", 1024 );		/* read/write on shared memory */	char	*banner = "hello, world.";	memcpy( p+256, banner, strlen(banner) );	pause();	return 0;}

⌨️ 快捷键说明

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