标准IO之文件定位
1.fseek
int fseek(FILE *stream, long offset, int whence);
将stream流文件中的文件指针从whence位置开始,偏移offset字节的长度。
2.ftell
long ftell(FILE *stream);
获取当前文件流指针的具体位置,一般以文件开头到当前指针的字节数为返回值。
3.rewind
rewind(fp);
流指针回到开头。
文件IO
操作系统为了方便用户使用系统功能而对外提供的一组系统函数。称之为系统调用 。
其中有个文件IO,一般都是对设备文件操作,当然也可以对普通文件进行操作。
一个基于Linux内核的没有缓存的IO机制。
特性:
1 没有缓存区
2 操作对象不在是流,而是文件描述符
3文件描述符
很小的非负的整数 范围:int 0-1023
内核每打开一个文件就会获得一个文件描述符。
每个程序在启动的时候操作系统默认为其打开
三个描述符与流对象匹配:
0 ==>STDIN_FILENO === stdin
1 ==>STDOUT_FILENO == stdout
2 ==>STDERR_FILENO == stderr
1.open
int open(const char *pathname, int flags,int mode);
获得一个文件描述符。
2.write
char buf[1024];
ssize_t write(int fd, const void *buf, size_t count);
通过文件描述符向文件中写一串数据。
3.read
ssize_t read(int fd, void *buf, size_t count);
通过文件描述符读取文件中的数据。
4.lseek
off_t lseek(int fd, off_t offset, int whence);
定位光标的位置。上述三个函数功能都可通过lseek实现。