我们通常使用fwrite函数来对文件进行写入操作,我们认为该函数一旦返回成功,数据便已经写到了文件中,事实上是不太正确的。...但是很多应用程序对文件写入的要求非常高,不允许丢失数据,比如数据库。于是UNIX提供了3个api,分别是sync/fsync/fdatasync函数。...sync函数:sync函数主动将所有修改过的块缓冲区排入写队列就完事儿,剩下的由操作系统来fsync函数:fsync函数只对由文件描述符filedes指定的单一文件起作用,并且等待写磁盘操作结束,然后返回...(非常适合数据库,一定能保证写入到磁盘)fdatasync函数:fdatasync函数类似于fsync,但它只影响文件的数据部分。而除数据外,fsync还会同步更新文件的属性。...php$file = 'gao.txt';$stream = fopen($file, 'w');fwrite($stream, '高三峰');fwrite($stream, "\r\n");fsync