fflush和fsync的区别

1.fflush函数和fsync函数

fflush接受一个参数FILE *.

fflush(FILE *);

fflush是libc.a中提供的方法,是用来将流中未写的数据传送到内核。如果参数为null,将导致所有流冲洗。


fsync接受的时一个Int型的文件描述符。

fsync(int fd);

fsync是系统提供的系统调用。将数据写到磁盘上


2.功能区别

fflush:是把C库中的缓冲调用write函数写到磁盘[其实是写到内核的缓冲区]。

fsync:是把内核缓冲刷到磁盘上。

c库缓冲-----fflush---------〉内核缓冲--------fsync-----〉磁盘



你可能感兴趣的:(fflush和fsync的区别)