Help needed on F_NOCACHE

Joined
Dec 18, 2009
Messages
2
Reaction score
0
Points
1
Hello Everybody,

I am Srinivasa Raghavan and new to this group.

I am facing problem with non caching the file.
the code looks like the below:

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")
}

the problem was, the F_NOCACHE doesn't not work properly, and all the time I get the message cached only. The firware will always update the value 'x' in sample.bin.

the above code works if I put the entire stuff (open, fcntl, read and close) in an indefinite loop (take long time to come out) like the below.
main()
{
while(1)
{
open...
fcntl(.., F_NOCACHE)
read(....
close..

if(buf[0] == 'x')
break;
}

I am really stuck with this for a week time, I want to know the exact behaviour of F_NOCACHE, and any information will be highly appreciated.

Thanks in advance,
Srinivasa Raghavan
 

Shop Amazon


Shop for your Apple, Mac, iPhone and other computer products on Amazon.
We are a participant in the Amazon Services LLC Associates Program, an affiliate program designed to provide a means for us to earn fees by linking to Amazon and affiliated sites.
Top