linux c语言 open 获得当前指针位置
//lseek的值就是指针位置 啊..................
off_t currpos = lseek(fd, 0, SEEK_CUR);
open与fopen的区别
前者(open)属于低级IO,后者(fopen)是高级IO。
前者返回一个文件描述符,后者返回一个文件指针。
前者无缓冲,后者有缓冲。
前者与 read, write,lseek 等配合使用,
备注:(lseek等同于fseek+ftell 等同于windos-c的open+tell )
后者与 fread, fwrite,fseek,ftell等配合使用。
后者是在前者的基础上扩充而来的,在大多数情况下,用后者。
fopen() 是 C 标准库中的函数,而 open() 是 Linux 中的系统调用函数。
下面是新手的我刚刚踩过的坑 这个open 纠结了好久,希望新学c的小伙伴在用open时不要在踩这个坑了
在linux操作系统下,使用C语言编程,想要获得文件的长度
首先用open函数打开二进制文件,用lseek函数将文件指针移到文件结尾,然后用tell函数返回文件指针相对于文件头的偏移量,这样就可以获得文件的长度
但是用gcc编译时,提示找不到io.h文件,我在/usr/inlcude下寻找也是找不到,在asm/io.h下找到的io.h文件,打开一看,里面并没有tell函数的声明,请问到哪里可以找到我要的io.h文件?
|
取位置,应该是ftell吧,在#include
|
tell是TC下的, 那是基于DOS系统的接口.
linux下是ftell
|
楼上的楼上的对