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的確切行爲,任何信息將高度讚賞。
由於提前, 斯里尼瓦沙拉加