第三章 文件I/O 第四章 文件和目录 第三章 文件I/O open(const char *pathname, int oflag, .../*mode_t mode*/) oflag除了熟悉的O_CREATE, O_RDONLY, O_WRONLY, O_RDWR外, 还有 O_APPEND 追加 O_EXCL 如果存在就会报错,不存在就创建,原子性操作 O_SYNC 保证数据一定落到硬盘上,但实际上很多系统并没有实现这个 O_TRUNC 成功打开后,且有写权限时,把长度截断到0 进程关闭时会自动关闭进程打开的所有fd. 可利用lseek来把cur位置往后移动,创建空洞文件,中间全为0. read和write是不带buff的,最优buff通常都是4096字节,即页大小. 文件的i节点中记录了文件的所有者,文件长度,文件所在的设备等,所以多个进程同时写一个文件时,相当于对i节点做原子操作. 由于历史原因,O_RDONLY,O_WRONLY并不是恰好不同的二进制位,所以要判断时必须 val & O_ACCMODE . int dup(fd) 用于从fd复制一个新的,并返回,等价
发表于 2018-04-23 08:41:48 | 条评论 | 阅读次数:170
Copyright © 2017 - 2018 qwb's blog
blog.csustacm.com All Rights Reserved
Powered by qwb Contact me