Я Шриниваса Рагхаван и новичок в этой группе.
Я столкнулся с проблемой отсутствия кэширования файла.
код выглядит следующим образом:
main()
{
int fd;
char buf[512] = {'\0'};
fd = fopen("Sample.bin",O_RDONLY);
fcntl(fd, F_NOCACHE, 1);
fcntl(fd, F_RDAHEAD, 1);
read(fd, buf, sizeof(buf));
close(fd);
if(buf[0] == 'x' )
print("non-cached\n");
else
printf("cached\n")
}
проблема была в том, что F_NOCACHE не работает должным образом, и все время я получаю только кэшированное сообщение. Прошивка всегда будет обновлять значение «x» в sample.bin.
приведенный выше код работает, если я помещаю весь материал (open, fcntl, read и close) в неопределенный цикл (занимает много времени), как показано ниже
main()
{
while(1)
{
open...
fcntl(.., F_NOCACHE)
read(....
close..
if(buf[0] == 'x')
break;
}
}
Я действительно застрял с этим на неделю, я хочу знать точное поведение F_NOCACHE, и любая информация будет высоко оценена.
Заранее спасибо,
Шриниваса Рагхаван