fseek函数一般用于二进制文件(fseek函数一般用在什么文件)

:暂无数据 2026-06-15 23:10:01 2

fseek函数一般用于二进制文件(fseek函数一般用在什么文件)

各位老铁们,大家好,今天由我来为大家分享fseek函数一般用于二进制文件,以及fseek函数一般用在什么文件的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

本文目录

fseek函数一般用在什么文件

fseek函数用于重定位流(数据流/文件)上的文件内部位置指针。
函数原型int fseek(FILE *stream, long offset, int fromwhere);
参数:
stream为文件流的指针
offset 偏移量
fromwhere 起始位置
具体功能:如果执行成功,stream将指向以fromwhere(起始位置:文件头0(SEEK_SET),当前位置1(SEEK_CUR),文件尾2(SEEK_END))为基准,偏移offset(指针偏移量)个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。
返回值:
成功,返回0,失败返回-1,并设置errno的值,可以用perror()函数输出错误。
实例:
#include 《stdio.h》
long filesize(FILE*stream);
int main(void)
{
FILE *stream;
stream=fopen(“MYFILE.TXT“,“w+“);
fprintf(stream,“This is a test“);
printf(“File size of MYFILE.TXT is %ld bytes\n“,filesize(stream));
fclose(stream);
return 0;
}

long filesize(FILE*stream)
{
long curpos,length;
curpos=ftell(stream);
fseek(stream,0L,SEEK_END);
length=ftell(stream);
fseek(stream,curpos,SEEK_SET);
return length;
}

C语言大文件操作疑问(fseek)

是有这个限制的。
如果使用的标准的c函数的。
如果是你是32操作系统,c语言操作文件的大小是 2^31 ,2G

如果是你是64操作系统,c语言操作文件的大小是.2^63 ,8589934592 G


你说的问题肯定,出在32位操作系统上。
一是:
操作系统能不能允许创建2G以上的文件了,具体要看操作系统了。
如果不允许,你的问题就没什么意义了!
如果操作系统允许的话,都会提供,系统函数让你调用的。
你得自己去找资料了。
===============
你可以看一下,sqlite的源代码,我的3-5-4版本
他不用是用c语言标准库的。函数,能windows提供的系统函数SetFilePointer,ReadFile

static int winRead(
sqlite3_file *id, /* File to read from */
void *pBuf, /* Write content into this buffer */
int amt, /* Number of bytes to read */
sqlite3_int64 offset /* Begin reading at this offset */
){
LONG upperBits = (offset》》32) & 0x7fffffff;
LONG lowerBits = offset & 0xffffffff;
DWORD rc;
DWORD got;
winFile *pFile = (winFile*)id;
assert( id!=0 );
SimulateIOError(return SQLITE_IOERR_READ);
OSTRACE3(“READ %d lock=%d\n“, pFile-》h, pFile-》locktype);
rc = SetFilePointer(pFile-》h, lowerBits, &upperBits, FILE_BEGIN);
if( rc==INVALID_SET_FILE_POINTER && GetLastError()!=NO_ERROR ){
return SQLITE_FULL;
}
if( !ReadFile(pFile-》h, pBuf, amt, &got, 0) ){
return SQLITE_IOERR_READ;
}
if( got==(DWORD)amt ){
return SQLITE_OK;
}else{
memset(&((char*)pBuf)[got], 0, amt-got);
return SQLITE_IOERR_SHORT_READ;
}
}

c语言文件操作的问题~~

文件定位
移动文件内部位置指针的函数主要有两个,即 rewind 函数和fseek函数。
rewind函数前面已多次使用过,其调用形式为:
rewind(文件指针);
它的功能是把文件内部的位置指针移到文件首。
下面主要介绍fseek函数。
fseek函数用来移动文件内部位置指针,其调用形式为:
fseek(文件指针,位移量,起始点);
其中:
“文件指针”指向被移动的文件。
“位移量”表示移动的字节数,要求位移量是long型数据,以便在文件长度大于64KB 时不会出错。当用常量表示位移量时,要求加后缀“L”。
“起始点”表示从何处开始计算位移量,规定的起始点有三种:文件首,当前位置和文件尾。
其表示方法如下表。
起始点 表示符号 数字表示
文件首 SEEK_SET 0
当前位置 SEEK_CUR 1
文件末尾 SEEK_END 2
例如:
fseek(fp,100L,0);
其意义是把位置指针移到离文件首100个字节处。
还要说明的是fseek函数一般用于二进制文件。在文本文件中由于要进行转换,故往往计算的位置会出现错误。

文件的随机读写
在移动位置指针之后,即可用前面介绍的任一种读写函数进行读写。由于一般是读写一个数据据块,因此常用fread和fwrite函数。
下面用例题来说明文件的随机读写。
【例】在学生文件stu_list中读出第二个学生的数据。
#include《stdio.h》
struct stu
{
char name;
int num;
int age;
char addr;
}boy,*qq;
main()
{
FILE *fp;
char ch;
int i=1;
qq=&boy
if((fp=fopen(“stu_list“,“rb“))==NULL)
{
printf(“Cannot open file strike any key exit!“);
getch();
exit(1);
}
rewind(fp);
fseek(fp,i*sizeof(struct stu),0);
fread(qq,sizeof(struct stu),1,fp);
printf(“\n\nname\tnumber age addr\n“);
printf(“%s\t%5d %7d %s\n“,qq-》name,qq-》num,qq-》age,
qq-》addr);
}

文件stu_list已建立,本程序用随机读出的方法读出第二个学生的数据。程序中定义boy为stu类型变量,qq为指向boy的指针。以读二进制文件方式打开文件,程序第22行移动文件位置指针。其中的i值为1,表示从文件头开始,移动一个stu类型的长度,然后再读出的数据即为第二个学生的数据。

fseek函数一般用在什么文件的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于fseek函数一般用在什么文件、fseek函数一般用在什么文件的信息别忘了在本站进行查找哦。

fseek函数一般用于二进制文件(fseek函数一般用在什么文件)

本文编辑:admin

更多文章:


全球著名软件公司?oracle究竟是什么软件

全球著名软件公司?oracle究竟是什么软件

各位老铁们,大家好,今天由我来为大家分享软件公司,以及全球著名软件公司的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年9月21日 18:50

html document对象(载入浏览器的html文档都会成为document的对象吗)

html document对象(载入浏览器的html文档都会成为document的对象吗)

其实html document对象的问题并不复杂,但是又很多的朋友都不太了解载入浏览器的html文档都会成为document的对象吗,因此呢,今天小编就来为大家分享html document对象的一些知识,希望可以帮助到大家,下面我们一起来

2026年9月21日 16:00

安装包怎样下载mysql(如何在官网上下载可安装版的MySQL数据库)

安装包怎样下载mysql(如何在官网上下载可安装版的MySQL数据库)

大家好,安装包怎样下载mysql相信很多的网友都不是很明白,包括如何在官网上下载可安装版的MySQL数据库也是一样,不过没有关系,接下来就来为大家分享关于安装包怎样下载mysql和如何在官网上下载可安装版的MySQL数据库的一些知识点,大家

2026年9月21日 15:30

威廉尖叫音效在线(渴求《勇敢的心》的配乐a gift of a thistle下载)

威廉尖叫音效在线(渴求《勇敢的心》的配乐a gift of a thistle下载)

各位老铁们,大家好,今天由我来为大家分享威廉尖叫音效在线,以及渴求《勇敢的心》的配乐a gift of a thistle下载的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈

2026年9月21日 15:20

wordpress建站教程视频(WordPress建站的基本流程)

wordpress建站教程视频(WordPress建站的基本流程)

这篇文章给大家聊聊关于wordpress建站教程视频,以及WordPress建站的基本流程对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年9月21日 14:00

fortune短语搭配(fortune什么意思)

fortune短语搭配(fortune什么意思)

“fortune短语搭配”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看fortune短语搭配(fortune什么意思)!

2026年9月21日 13:50

vue预览pdf文件流(vue-pdf使用)

vue预览pdf文件流(vue-pdf使用)

这篇文章给大家聊聊关于vue预览pdf文件流,以及vue-pdf使用对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年9月21日 13:20

powerquery(power query中文含义是什么)

powerquery(power query中文含义是什么)

其实powerquery的问题并不复杂,但是又很多的朋友都不太了解power query中文含义是什么,因此呢,今天小编就来为大家分享powerquery的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年9月21日 11:50

reactnative文档扫描(为什么要学习React Native)

reactnative文档扫描(为什么要学习React Native)

各位老铁们,大家好,今天由我来为大家分享reactnative文档扫描,以及为什么要学习React Native的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始

2026年9月21日 10:30

aptana studio 3 windows 10(aptana studio 3 怎么改成中文)

aptana studio 3 windows 10(aptana studio 3 怎么改成中文)

其实aptana studio 3 windows 10的问题并不复杂,但是又很多的朋友都不太了解aptana studio 3 怎么改成中文,因此呢,今天小编就来为大家分享aptana studio 3 windows 10的一些知识,希

2026年9月21日 09:20

最近更新

微信小程序开发价格是多少?
2026-09-21 22:23:47 浏览:0
应城租房网站建设
2026-09-21 22:23:18 浏览:0
石家庄本地商家如何做网络营销?
2026-09-21 22:22:21 浏览:0
安阳优惠网站优化软件哪个好用?
2026-09-21 22:21:16 浏览:0
营销网站如何才能吸引更多客户?
2026-09-21 22:21:13 浏览:0
莒县网上报名流程是怎样的?
2026-09-21 22:20:47 浏览:0
热门文章

wait for you杨和苏(大家听下(wait for you)这首英文歌的开头那段音乐)
2026-06-13 16:20:04 浏览:22
刷关键字排名怎么操作最有效?
2026-09-14 20:02:13 浏览:13
oppo a9拆机教程(oppoa9拆机教程)
2026-06-13 10:40:02 浏览:12
标签列表