我正在尝试将文件投影到内存中以对其进行操作。该文件包含结构,因此我尝试使用指向一个结构开头的指针,然后读取它并修改一些变量。问题是执行时间很长,我想使用 mmap 时间会更短。这是代码,有什么建议吗?
#include <unistd.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/mman.h>
int revisanotas(int fd)
{
int nbytes=1;
int nbytese=0;
int i=0;
int n=0;
struct stat datos;
fstat(fd, &datos);
evaluacion buf;
evaluacion* buffer=mmap(0,datos.st_size, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
int actual = read(fd,buffer,datos.st_size);
{
i++;
if (buffer[i].notamedia >= 4.5 && buffer[i].notamedia < 5)
{
n=n+1;
printf("Notamedia = %f\n",buffer[i].notamedia);
buffer[i].notamedia=5;
}
}while (i<(datos.st_size/(sizeof(evaluacion))));
return