Chinaunix首页 | 论坛 | 博客

分类: LINUX

2012-11-08 18:01:55

暑假第一次看文件系统的时候,就是匆匆的看了一遍,觉得很多东西,自己当时都没有理解,现在重新看文件系统别有一番滋味在心头。。
例如这个函数我知道大家是怎么样理解的。。
man lseek   
#include
#include
 
off_t lseek(int fd, off_t offset, int whence);
说道这里的时候,我自己就给大家说一下,我以前也不知道#include 要出现在程序的最开始,但是我今天在看《linux 程序设计》的时候,里面有一句话,#include 必须首先出现,因为他的定义和POSIx的规范有关的标志会影响其他的头文件。虽然你或许在写的时候,能不论放在哪里都没有出错,但是,还是按照规范来处理。

对于whience的设置有三种形式,SEEK_SET,SEEK_CUR,SEEK_END,这三个形式的意思分别是从文件最开始偏移offset ,从文件的当前位置偏移offset ,从文文件的最后偏移offset ..
有了这三个相对位置,你就可以通过设置offset的大小,来随意的设置你要读取文件的那个位置,和随意的写入你要写在文件的任何地方。。并且还要注意的是,offset 的值还可以是负数,这样就很方便都追加文件的控制,如果你只想读出你当前所写入的一串字符串,而不希望读出以前你写在该文件的东西。就可以利用
lseek (fd ,-(ret ),SEEK_END),期中的ret 的值是你这才写入文件的字符的长度。。



阅读(5935) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~