当前位置: 技术问答>linux和unix
对mkstemp和fsync的疑惑,请大虾江湖救急
来源: 互联网 发布时间:2015-11-21
本文导语: 我在看书的时候遇到下面两个问题: Q1: 书上对命令fsync的地解释为:系统调用fsync将所有已写入文件描述符fd的数据真正地写到磁盘, 或其他下层设备上。 这里“真正地写到磁盘或其他下层设备上”是什么意思呢...
我在看书的时候遇到下面两个问题:
Q1:
书上对命令fsync的地解释为:系统调用fsync将所有已写入文件描述符fd的数据真正地写到磁盘,
或其他下层设备上。
这里“真正地写到磁盘或其他下层设备上”是什么意思呢??直接write后信息不就已经写到文件中
去了嘛,那fsync的作用是什么呢??
Q2:
对mktemp的解释为:mkstemp()用来建立唯一的临时文件。参数template 所指的文件名称字符串中最后六个字符必须是XXXXXX。Mkstemp()会以可读写模式和0600 权限来打开该文件,如果该文件不存在则会建立该文件。
“mkstemp()用来建立唯一的临时文件”这里为什么说是唯一呢?而且既然是临时文件,那时在程序结束的时候系统会自动删除地它吗??这个命令是在需要临时的中间文件帮助操作的时候会用到吗,如果不是,麻烦大虾帮举两个应用这个命令的例子。
小弟纯属自学,常苦于无人探讨,可能问题很菜,还请见谅,请大虾给指教以下。
Q1:
书上对命令fsync的地解释为:系统调用fsync将所有已写入文件描述符fd的数据真正地写到磁盘,
或其他下层设备上。
这里“真正地写到磁盘或其他下层设备上”是什么意思呢??直接write后信息不就已经写到文件中
去了嘛,那fsync的作用是什么呢??
Q2:
对mktemp的解释为:mkstemp()用来建立唯一的临时文件。参数template 所指的文件名称字符串中最后六个字符必须是XXXXXX。Mkstemp()会以可读写模式和0600 权限来打开该文件,如果该文件不存在则会建立该文件。
“mkstemp()用来建立唯一的临时文件”这里为什么说是唯一呢?而且既然是临时文件,那时在程序结束的时候系统会自动删除地它吗??这个命令是在需要临时的中间文件帮助操作的时候会用到吗,如果不是,麻烦大虾帮举两个应用这个命令的例子。
小弟纯属自学,常苦于无人探讨,可能问题很菜,还请见谅,请大虾给指教以下。
|
1、为了提高性能,write不会立刻写盘,而是保存在缓存里,在适当的时候才会真正写盘,fsync就是强制内核将缓存中的数据立刻写盘。
2、mkstemp会将XXXXXX替换为编号,保证不会与已有的文件重复,所以称为唯一。
2、mkstemp会将XXXXXX替换为编号,保证不会与已有的文件重复,所以称为唯一。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。