Im trying to use O_DIRECT to open a file and we're using jffs2
fd = open(filename, O_RDONLY|O_DIRECT|O_SYNC);
But i only get an "invalid argument" error. I have also tried the solutions in this SO link but to no avail. Ofcourse i have also put in "-D_GNU_SOURCE" in building the source.
I've read that O_DIRECT is not supported on tmpfs, but couldn't find support or un-support for jffs2. If someone could give me proof or un-proof for jffs2 support and/or any other thing i'm missing to make O_DIRECT work.
note:
This all happened because Linux seem to cache memory data on its own when i use fread()/read().
And using system("echo 3 > /proc/sys/vm/drop_caches");
would be too late because I don't want the FS allocating cache memory in the first place.
Thanks, Naze