Я пытаюсь проецировать файл в память для работы с ним. Структуры файлов contais, поэтому я пытаюсь использовать указатель на начало одной структуры, а затем читать ее и изменять некоторую переменную. Проблема в том, что время выполнения велико, и я полагаю, что использование mmap будет меньше. Это код, любое предложение?Проецирование файла в память с помощью 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
Вам не хватает 'do' после вызова' read'? –