【C语言】【unix c】lseek(2)重新定位文件的读写位置的使用
2017-08-19 00:11
274 查看
一、lseek(2)重新定位文件的读写位置的使用 #include <sys/types.h> #include <unistd.h> off_t lseek(int fd, off_t offset, int whence); 功能:重新定位文件读写位置距离文件起始的偏移 参数: fd:指定了具体的文件 offset:偏移量 whence: SEEK_SET:offset就是文件的偏移位置(以头为基准) SEEK_CUR:当前位置加上offset(以当前位置为基准) SEEK_END:文件的大小加上offset 文件的尾部(以尾部为基准) 返回值: -1 错误 errno被设置 正确 返回的是距离文件开始的位置 *************************************************************** 举例:lseek.c #include <stdio.h> #include <p_file.h> 程序: int main(int argc, char *argv[]) { int fd; char buf[24]; //读取到的需要先存在一个地方 fd = open(argv[1], O_RDONLY); //不用新建文件,所以不用写第三个参数 if(fd == -1) { perror("open"); return -1; } lseek(fd, 3,SEEK_SET); //以头为基准,向后偏移3个字节 int r = read(fd, buf, 2); write(1, buf, r);// printf("\n"); close(fd); return 0; } 命令: tarena@ubuntu:~/day/day28$ a.out hello 结果: lo 补充: tarena@ubuntu:~/day/day28$ od -tx1 -tc hello (文件起始位置)0000000 68 65 6c 6c 6f 0a //ASIIC码 h e l l o \n //字符 (文件结束位置)0000006
相关文章推荐
- Unix学习笔记------文件IO------使用lseek设置文件当前读写偏移量(即:当前的读写位置)
- C语言lseek()函数:移动文件的读写位置
- 【C语言】【unix c】文件的操作(文件的打开,关闭,读,写,读写位置重定位)(对文件内容的操作)
- C语言lseek()函数:移动文件的读写位置
- 用O_APPEND标志open一个文件,能否用lseek在任意位置读写
- 使用fseek函数,重新定位文件内部的位置指针
- 【C语言】【unix c】使用mmap将文件映射到进程的虚拟地址空间,然后对内存的操作直接反应到文件中
- C语言-1.static 和 extern使用,2.文件,3.数据块读写
- 使用C语言读写文件
- 使用c语言风格的文件读写fopen,在build gcce时会出现undefined reference错误
- 如果使用追加标志O_APPEND打开一个文件以便读、写,能否仍能用lseek在任一位置开始读? 能否用lseek更新文件中任一部分的数据?
- c语言中文件的读写、fp位置操作
- 使用O_APPEND标志打开文件对文件进行lseek后进行读写的问题
- 用O_APPEND标志open一个文件,能否用lseek在任意位置读写
- 使用rewind函数,重新定位文件内部的位置指针
- C语言ftell()函数:获取文件读写指针的当前位置
- 使用UltraEdit实现从UNIX文件到DOS文件的批量转换
- 解决SqlServer设备激活错误,请使用 WITH MOVE 选项来标识该文件的有效位置
- 转载:在Visual C++中使用fopen()函数来读写文件
- .Net2.0 使用ConfigurationManager读写配置文件