linux下c通过虚拟地址映射读写文件的代码

Posted lpypg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下c通过虚拟地址映射读写文件的代码相关的知识,希望对你有一定的参考价值。

在代码过程中中,把开发过程中比较好的一些代码片段记录起来,如下的代码内容是关于 linux下c通过虚拟地址映射读写文件的代码,应该对小伙伴有些好处。
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<fcntl.h>
#include<sys/stat.h>
#include<string.h>
#include<sys/mman.h>
struct stu
{
char name[20];
int age;
float score;
};
main()
{
int fd;
struct stat st;
int size;
int count;
struct stu record;
memset(&record,0,sizeof(struct stu));
fd=open("newstu.dat",O_RDWR|O_CREAT|O_EXCL,0666);
if(fd==-1)
{
fd=open("newstu.dat",O_RDWR);
if(fd==-1) printf("::%mn"),exit(-1);
}
fstat(fd,&st);
count=size/sizeof(struct stu);
s=mmap(0,size+sizeof(struct stu),
PROT_READ|PROT_WRITE,
MAP_SHARED,fd,0);
printf("输入姓名:");
scanf("%s",s[count].name);
printf("输入年龄:");
scanf("%s",&(s[count].age));
printf("输入分数:");
scanf("%f",&(s[count].score));
int i;
for(i=0;i<count-1;i++)
{
printf("%s,%d,%.2fn",s[i].name,s[i].age,s[i].score);
}
munmap(s,size+sizeof(struct stu));
close(fd);
}





 



















































以上是关于linux下c通过虚拟地址映射读写文件的代码的主要内容,如果未能解决你的问题,请参考以下文章

Linux下直接读写物理地址内存

linux下通过shmget创建的共享内存,是属于用户空间还是内核空间?

Linux硬件访问技术

linux系统下,文件存储与数据读写问题(C语言)。

第十章读书笔记

hugepages