UNIX/Linux函数lseek说明
2015-06-04 18:16
344 查看
1.
lseek返回当前文件所在位置距离文件开始处的偏移
lseek的原型
off_t lseek(int filedes, off_t offset, int whence);
filedes:代表文件描述符
offset:通过第三个参数标记相对偏移量
whence:取值SEEK_SET(文件开始处),SEEK_CUR(文件当前位置),SEEK_END(文件末尾)
2.
说明:对于SEEK_SET如果设置第二个参数为负数,返回的将是-1,所以不要和管道,SOCKET等文件使用混淆了,
它们都是返回-1.如果设置第二个参数大于当前文件的长度,返回值也就是那个设置的值。没有报错。
对于SEEK_CUR如果是第一次使用文件,使用这个标志,那么使用和SEEK_SET类似.但是如果是前面已经使用过
再次使用,只要偏移不低于文件开始处返回的都是非负值.
对于SEEK_END使用正负数都可以,但是对于负数只要不低于文件开始处都不会返回-1,正数可以任意设置。
3.
总结:对于lseek函数第三个参数无论使用哪个标志只要偏移不低于文件开始处都不会返回-1.向后超过文件长度
不会返回-1.也就是返回的值都是相对于文件开始处的偏移。
lseek返回当前文件所在位置距离文件开始处的偏移
lseek的原型
off_t lseek(int filedes, off_t offset, int whence);
filedes:代表文件描述符
offset:通过第三个参数标记相对偏移量
whence:取值SEEK_SET(文件开始处),SEEK_CUR(文件当前位置),SEEK_END(文件末尾)
2.
说明:对于SEEK_SET如果设置第二个参数为负数,返回的将是-1,所以不要和管道,SOCKET等文件使用混淆了,
它们都是返回-1.如果设置第二个参数大于当前文件的长度,返回值也就是那个设置的值。没有报错。
对于SEEK_CUR如果是第一次使用文件,使用这个标志,那么使用和SEEK_SET类似.但是如果是前面已经使用过
再次使用,只要偏移不低于文件开始处返回的都是非负值.
对于SEEK_END使用正负数都可以,但是对于负数只要不低于文件开始处都不会返回-1,正数可以任意设置。
3.
总结:对于lseek函数第三个参数无论使用哪个标志只要偏移不低于文件开始处都不会返回-1.向后超过文件长度
不会返回-1.也就是返回的值都是相对于文件开始处的偏移。
相关文章推荐
- linux驱动之模块化编程小总结
- linux程序设计——文件操作(第三章)
- linux-文件属性及权限简析
- 在Linux系统中安装即时通信应用Telegram Messenger的教程
- Linux NFS 处理
- linux驱动之内核多线程(四)
- maven nexus linux私服搭建
- linux驱动之内核多线程(三)
- 如何创建和使用Linux中的patch
- linux驱动之内核多线程(二)
- Linux 调优方案, 修改最大连接数(ulimit命令)【转】
- linux 消息队列实例
- linux系统进程的内存布局
- linux驱动之内核多线程(一)
- Mac 终端
- linux驱动之模块化驱动Makefile
- Linux学习笔记(一)
- Android中linux内核模块--开发设备驱动程序 && 上层接口实施
- 【转】6.4.6 将驱动编译进Linux内核进行测试
- 【转】Linux驱动模块编译进内核中