fflush has no use?
Rui Zhengxin
ruizx at qq.com
Thu Nov 7 03:56:31 UTC 2013
Hi all,
In my application, I need a log file stored on hard disk to record some log messages.
The file pointer of the log file is opened by fopen, and we keep it opening.
When a new log messages coming, I use the fprintf to write it.
In order to update the connent of hard disk,
the "fflush" function is used to flush buffered file output.
But unfortunately, **"fflush" seems have no use.**
The test code is like this.
-------------------------------------------------------
FILE *fp;
int i;
fp = fopen("/mnt/log.txt", "a+");
for (i=0; i<10; i++)
{
fprintf(fp, "test fflush %d\n", i);
if (fflush(fp)!= EOF)
printf("%d ok!\n", i);
else
printf("%d bad!\n", i);
rtems_task_wake_after(100);
}
-------------------------------------------------------
When the above code is executed,
the console output is always print ok, fflush returns good.
But when restart the board,
then use "cat" command to display the log file, it has nothins.
The length of the log file is zero too.
[/mnt] # ls -l
total 7973
-rw-r--r-- 1 root root 1767821 Jan 1 00:03 hello.exe
-rw-r--r-- 1 root root 0 Jan 1 00:08 log.txt
We also find that if we use "cat" command after fflush, the file content can be stored.
If the fflush function in RTEMS is fully implemented or not?
Thanks & Best regards,
Rui Zhengxin
More information about the users
mailing list