write后不fsync,为什么仍然能read成功?

Linux/Unix社区 > 应用程序开发区 [问题点数:100分,结帖人godbreak]
等级
本版专家分:0
结帖率 96%
等级
本版专家分:35775
勋章
Blank
红花 2013年8月 Linux/Unix社区大版内专家分月排行榜第一
2012年11月 Linux/Unix社区大版内专家分月排行榜第一
2012年10月 Linux/Unix社区大版内专家分月排行榜第一
2012年9月 Linux/Unix社区大版内专家分月排行榜第一
2012年7月 Linux/Unix社区大版内专家分月排行榜第一
2012年6月 Linux/Unix社区大版内专家分月排行榜第一
2012年5月 Linux/Unix社区大版内专家分月排行榜第一
2011年11月 Linux/Unix社区大版内专家分月排行榜第一
Blank
黄花 2013年6月 Linux/Unix社区大版内专家分月排行榜第二
2013年5月 Linux/Unix社区大版内专家分月排行榜第二
2013年3月 Linux/Unix社区大版内专家分月排行榜第二
2013年1月 Linux/Unix社区大版内专家分月排行榜第二
2012年12月 Linux/Unix社区大版内专家分月排行榜第二
2012年8月 Linux/Unix社区大版内专家分月排行榜第二
2011年12月 Linux/Unix社区大版内专家分月排行榜第二
2011年10月 C/C++大版内专家分月排行榜第二
2011年10月 Linux/Unix社区大版内专家分月排行榜第二
Blank
蓝花 2012年6月 C/C++大版内专家分月排行榜第三
2012年6月 PHP大版内专家分月排行榜第三
2012年5月 C/C++大版内专家分月排行榜第三
2012年3月 Linux/Unix社区大版内专家分月排行榜第三
2012年2月 Linux/Unix社区大版内专家分月排行榜第三
2011年11月 C/C++大版内专家分月排行榜第三
等级
本版专家分:0
等级
本版专家分:0
等级
本版专家分:35775
勋章
Blank
红花 2013年8月 Linux/Unix社区大版内专家分月排行榜第一
2012年11月 Linux/Unix社区大版内专家分月排行榜第一
2012年10月 Linux/Unix社区大版内专家分月排行榜第一
2012年9月 Linux/Unix社区大版内专家分月排行榜第一
2012年7月 Linux/Unix社区大版内专家分月排行榜第一
2012年6月 Linux/Unix社区大版内专家分月排行榜第一
2012年5月 Linux/Unix社区大版内专家分月排行榜第一
2011年11月 Linux/Unix社区大版内专家分月排行榜第一
Blank
黄花 2013年6月 Linux/Unix社区大版内专家分月排行榜第二
2013年5月 Linux/Unix社区大版内专家分月排行榜第二
2013年3月 Linux/Unix社区大版内专家分月排行榜第二
2013年1月 Linux/Unix社区大版内专家分月排行榜第二
2012年12月 Linux/Unix社区大版内专家分月排行榜第二
2012年8月 Linux/Unix社区大版内专家分月排行榜第二
2011年12月 Linux/Unix社区大版内专家分月排行榜第二
2011年10月 C/C++大版内专家分月排行榜第二
2011年10月 Linux/Unix社区大版内专家分月排行榜第二
Blank
蓝花 2012年6月 C/C++大版内专家分月排行榜第三
2012年6月 PHP大版内专家分月排行榜第三
2012年5月 C/C++大版内专家分月排行榜第三
2012年3月 Linux/Unix社区大版内专家分月排行榜第三
2012年2月 Linux/Unix社区大版内专家分月排行榜第三
2011年11月 C/C++大版内专家分月排行榜第三
等级
本版专家分:0
sync、fsync、fdatasync知识点

人生三大错觉之一:在调用函数write()时,我们认为该函数一旦返回,数据便已经写到了文件中.但是这种概念只是宏观上的.实际上,操作系统实现某些文件I/O时(如磁盘文件),为了保证I/O的效率,在内核通常会用到一片...

read/write/fsync与fread/fwrite/fflush的关系和区别

read/write/fsync:  1. linux底层操作; 2. 内核调用, 涉及到进程上下文的切换,即用户态到核心态的转换,这是个比较消耗性能的操作。 fread/fwrite/fflush:  1. c语言标准规定的io流操作,建立在...

fsync和fdatasync是否一定保证数据写入磁盘不会丢?

 在UNIX和linux系统上,在数据被写入到磁盘上之前,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并将其排入输出队列,而是等待其写满或者当内核需要重用该缓冲区以便存放其他磁盘块数据...

关于write()和fsync()

--关于write()和fsync() ----------------------------转载 write ssize_t write(int fd, const void *buf, size_t count); 将数据写到文件中. 注意, 如果文件是保存在硬盘中, write() 函数调用返回之后, 并...

Linux 核心编程 – fsync, write

注意, 如果文件是保存在硬盘中, write() 函数调用返回之后, 并表示数据已经写入到硬盘中, 这时如果掉电, 数据可能会丢失.fsyncint fsync(int fd);程序调用本函数, 通知内核把数据写到硬盘(file)中. 比如...

linux c中writeread的用法

linux c中writeread的用法 ·write函数 1.功能 将数据写入已打开的文件内 2.相关函数 open,read,fcntl,close,lseek,sync,fsync,fwrite 3.表头文件 #include 4.定义函数 ssize_t write (int fd,...

unix环境下的文件操作的一些函数open()、close()、read()、write()、dup()、fsync()sync()函数

带缓存的文件I/O操作主要有5个函数open、readwrite、lseek和close。这几个带缓存的操作是指每一个函数都只调用系统中的一个函数。这些函数不是ANSIC组成部分,但属于POSIX的组成部分。 1.open函数(返回的...

linux系统编程之基础必备(七):read/write函数与(非)阻塞I/O的概念

一、read/write 函数 read函数从打开的设备或文件中读取数据。 #include ssize_t read(int fd, void *buf, size_t count); 返回值:成功返回读取的字节数,出错返回-1并设置errno,如果在调read之前已到达文件末尾...

Linux文件I/O(creat/open/read/write/lseek/close/dup/sync)

我们要进行读写操作的时候,把这个描述符传给readwrite即可对文件内容进行操作。 按照惯例,UNIX系统shell把文件描述符0与进程的标准输入关联,1和标准输出关联,2和标准错误关联。在unistd.h中有相关的STDIN_...

fflush and fsync区别

缓冲还是缓冲?这是个问题 主要涉及到 setbuf, fflush, fsync,sync等函数。 首先来说输入输出库的缓冲。 The three types of buffering available are unbuffered, block buffered, and line ...

Linux C flie操作: open write read lseek close函数分析

Linux C file操作: open write read lseek close函数分析

readwrite的陷阱(很隐晦的)

为什么先讲这些呢,因为readwrite函数如果要从一个磁盘里读信息,或者写一个信息到磁盘的文件都是会经过RAM的,一般再 RAM上停留的时间为5-7分钟,如果再这个时间段里,服务器因为负载过高(宕机了)(这个现象是...

嵌入式Linux C编程学习之路(八)——read/write,lseek函数,cp指令的代码实现

第二个参数:向这个文件中写什么内容;第三个参数:向这个文件中写多少个。 返回值:是实际写的字节数。   2. read read(intfd, void *buf, size_t count) 第一个参数:从哪一个文件中去...

Linux的write函数奥秘

可是为什么用户使用write函数就可以把数据写到设备里面 去,这个过程到底是怎么实现的呢?  这个奥秘就在于设备驱动程序的write实现中,这里我结合一些源代码来解释如何使得一 个简简单单的write函数能够完成向...

fsync中使用mmap是否安全? (fsync将使mmap上的某些页面无效吗?)

What if I call write and fsync to update or changes the underlying file after then? Will the data in the memory also change? Or I need to call some other system call to synchronize the mapped memory?...

linux驱动---file_operations异步读写aio_read、aio_write

file_operations中read,write是同步读写,异步读写用接口是aio_read、aio_wirte(在4.5版本中发现已经把名字改成read_iter、write_iter)。异步读写对应的系统调用API:int aio_read(struct aiocb *__aiocbp); int ...

fsync与fflush的关系和区别

read/write/fsync与fread/fwrite/fflush的关系和区别 read/write/fsync: linux底层操作; 内核调用, 涉及到进程上下文的切换,即用户态到核心态的转换,这是个比较消耗性能的操作。 fread/fwrite/fflush: ...

同步I/O--fdatasync与fsync

对于提供事务支持的数据库,在事务提交时,都要确保事务日志(包含该事务所有的修改操作以及一个提交记录)完全写到硬盘上,才认定事务提交成功并返回给应用层。 一个简单的问题:在*nix操作系统上,怎样保证对文件...

Linux fsync和fdatasync系统调用实现分析(Ext4文件系统)

本文将介绍Linux系统中的fsync和fdatasync的功能和区别,并以Ext4文件系统例,详细分析内核如何将文件数据同步到磁盘。

linux中mmap与read/write操作文件的区别

在介绍mmap和read/write之前,首先先要介绍一下基础知识,其中包括磁盘,文件系统,内存。 首先说一下文件系统,linux文件系统的三层结构想必大家多少都了解一些,每个进程中都有一个用户文件描述符表,表项指向一...

read 系统调用剖析--file_operations中read/write函数与内核系统调用的关系

在阅读LDD3-第三章-字符设备驱动程序中: struct file_operations scull_fops = {  .owner = THIS_MODULE, ... .read = scull_read, ... .write = scull_write,

fflush和fsync的联系和区别

强制把系统缓存写入文件sync和fsync函数,, fflush和fsync的联系和区别 传统的U N I X实现在内核中设有缓冲存储器,大多数磁盘I / O都通过缓存进行。当将数据写 到文件上时,通常该数据先由内核复制到缓存中,...

关于fsync的问题及学习

1. 问题: 因为需要写一个非常重要的文件,需要避免因系统突然断电造成的文件内容丢失问题的发生。 而在调用了fopen/fwrite以及sync之后,会导致系统运行过程中用户操作卡...使用fsync就必须先获取文件描述符,这样

linuxIO刷新机制fsync和fdatasync

Linux,unix在内核中设有 缓冲区高速缓冲或页面高速缓冲,大多数磁盘I/O都通过缓冲进行,采用延迟写技术。sync:将所有修改过的快缓存区排入写队列,然后返回,并...

Linux文件编程之【系统调用】——write()

(1)相关函数说明 函数原型 ...open,read,fcntl,close,lseek,sync,fsync,fwrite   表头文件 #include   函数说明 【从buf所指向的缓冲区中,取出count个字节,写到文件描述符fd

block_read和block_write函数 设备块号

在1.2内核版本中,在Linux/fs目录下,有一个block_dev.c文件,里面主要包含了block_read、block_write、block_fsync函数。 先说说我遇到的问题,在块读写函数中,内核根据文件指针f_pos找到当前要读或写的文件的...

相关热词 c#读取da文件 c#字符串拼接安全 c# 串口数据发送 c# 调硬件 计算器的累加c#代码 c#打开bmp文件 c#关闭线程以及子线程 c#界面加载事闪烁 c# xml 特性 c# 获取文件名