1
我是Srinivasa Raghavan,并且是该组的新成员。在mac中使用F_NOCACHE需要帮助
我面临非缓存文件的问题。 代码看起来像下面:
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不会无法正常工作,而我得到的消息的时间只有缓存。 firware将始终更新sample.bin中的值'x'。
上面的代码工作,如果我把整个东西(开放,fcntl,读取和关闭)在一个无限循环(需要很长时间出来)像下面。
main()
{
while(1)
{
open...
fcntl(.., F_NOCACHE)
read(....
close..
if(buf[0] == 'x')
break;
}
}
我真的坚持了一个星期的时间,我想知道F_NOCACHE的确切行为,任何信息将高度赞赏。
由于提前, 斯里尼瓦沙拉加