您的位置:首页 > 运维架构 > Linux

linux 学习笔记之 FILE I/O

2007-09-21 06:56 351 查看
[align=left]void sync(void) [/align]
[align=left]s y n c只是将所有修改过的块的缓存排入写队列,然后就返回,它并不等待实际I / O操作结束。系统精灵进程(通常称为u p d a t e )一般每隔3 0秒调用一次s y n c函数。这就保证了定期刷新内核的块缓存。注意该函数没有返回值,因为它总是被调用成功。[/align]
[align=left][/align]
[align=left]int fsync(int fd) [/align]
[align=left]f s y n c只引用单个文件(由文件描述符f i l e d e s指定),它等待I / O结束(与sync不同),然后返回。f s y n c可用于数据库这样的应用程序,它确保修改过的块立即写到磁盘上。比较一下f s y n c和O _ S Y N C标志。当调用f s y n c时,它更新文件的内容,而对于O _ S Y N C,则每次对文件调用w r i t e函数时就更新文件的内容。[/align]
[align=left][/align]
[align=left]int access(const char *path, int mode)[/align]
[align=left]检查调用进程是否可以对指定的文件执行某种操作,执行成功返回0否则为-1. mode可以是:R_OK(读文件)W_OK(写文件), X_OK(执行文件), F_OK(文件存在)[/align]
[align=left][/align]
[align=left]ssize_t pwrite(int fd,const void *buf,size_t count,off_t offset)[/align]
[align=left]ssize_t pread(int fd,void *buf,size_t count,off_t offset)[/align]
[align=left]同write和read基本相同,不同是pwrite和pread都是原子操作(如果文件在打开时设置了O_APPEND标记,对write也是原子操作);第四个参数offset 是指相对于文件开始位置的偏移量,应该主意的是调用pwrite/pread后fd所指向的文件的偏移量并未改变。[/align]
[align=left][/align]
[align=left]off_t lseek(int fd, off_t offset, int whence)[/align]
[align=left]当offset <0 时,文件指针将向着文件头的方向移动(这和offset>0刚好相反)。[/align]
[align=left]如果offset大于文件的大小,将会产生空洞(hole)。[/align]
[align=left][/align]
[align=left]int dup2(int fd,int fd2)[/align]
[align=left]新的文件描述符fd2拥有和fd一样的描述符属性,如append, read, write 等。dup2是一个原子操作。[/align]
[align=left][/align]
[align=left]int fcntl(int fd,int cmd, … /*arg*/)[/align]
[align=left] 需要主意的是:1、当使用F_SETFL时,能改变的标记位只有:O_NONBLOCK, O_SYNC, O_DSYNC, O_RSYNC, O_FSYNC, O_ASYNC。2、下面是个命令具有不同的返回值,F_DUPFD, F_GETFD, F_GETFL, F_GETOWN。其中第一个返回新的文件描述符(类似dup),后两个返回当前的标记(flag),最后一个返回正的进程ID(positive process ID)或者负的进程组ID(negative process group ID)。[/align]
[align=left][/align]
[align=left]关于目录的权限[/align]
[align=left]执行权限允许用户搜索和访问目录(无法ls),读权限允许用户列出目录的内容(可以ls),写权限意味着可以在该目录中创建文件。[/align]
[align=left] [/align]
[align=left]其它[/align]
[align=left]当进程推出的时候将会自动关闭所有的文件描述符,运用这个技术,一些程序可以没有明确的关闭已打开的文件描述符。[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: