16得票2回答
Python中f.seek()的复杂性

f.seek(500000,0) 是否会在到达第 500000 个字符之前经过文件的前 499999 个字符? 换句话说,f.seek(n,0) 的时间复杂度是 O(n) 还是 O(1)?

15得票10回答
使用fseek逆向按行读取文件

如何使用 fseek 逆序逐行读取文件? 请提供可跨平台且纯 PHP 的代码。 非常感谢! 祝好 Jera

14得票5回答
使用fseek和ftell确定文件大小存在漏洞?

我读过一些帖子,展示了如何使用fseek和ftell来确定文件的大小。FILE *fp; long file_size; char *buffer; fp = fopen("foo.bin", "r"); if (NULL == fp) { /* Handle Error */ } if...

14得票1回答
ftello/fseeko与fgetpos/fsetpos的区别

ftello/fseeko和fgetpos/fsetpos之间有什么区别?两者都是文件指针获取/设置函数,使用不透明偏移类型来允许64位偏移。 它们是否在不同的平台上或由不同的标准支持?其中一个在所使用的偏移类型方面更加灵活吗? 顺便说一下,我知道fgetpos / fsetpos和ftell...

13得票3回答
如果以“a+b”模式打开文件,fseek()函数会将文件指针移动到文件开头吗?

我想要使用"a+b"模式打开文件,即如果文件不存在,则会自动创建,但如果存在,则不希望覆盖它。我希望能够读写文件。 该文件是二进制的,我想要在其中保存特定struct的记录。因此,我想使用fseek()将光标移到我想要的记录处,然后使用fwrite()保存记录。 代码如下(MyRecord...

10得票2回答
如何在便携式C语言中从管道读取时向前查找

由于fseek()在管道上不起作用,因此模拟向前寻找的方法有哪些?幼稚的方法是使用fread()并且将读入内存缓冲区的内容丢弃。为了避免巨大的寻求而不必使用巨大的缓冲区,您可以一遍又一遍地使用相同的缓冲区,最后只使用缓冲区的一部分进行读取。 但这是唯一的方法吗?是否还有其他方式可以避免缓冲区...

8得票3回答
在C语言中,如何通过fseek函数定位二进制文件的某个位置,并从该位置处开始使用fread函数读取文件内容?

我在想这是否是解决我的问题的最佳方式。 我知道二进制文件中特定偏移量的值,这些值包含我想要的信息......我想要偏移到这些偏移量,然后从该位置开始读取一定数量的字节。 使用谷歌之后,我得出结论,最好使用fseek()将偏移量移动到指定位置,然后使用fread()从该位置读取一定数量的字节...

8得票6回答
确定一个大于4GB的文件大小

目前的代码可以执行此操作,而且fgetpos可以处理大于4GB的文件,但是seek会返回一个错误,那么有什么办法可以寻找到大于4GB的文件结尾呢? fpos_t currentpos; sok=fseek(fp,0,SEEK_END); assert(sok==0,"Seek error!...

8得票2回答
fseek传递负偏移量和SEEK_CUR

我在一个非常大的文件中运行fseek(..)时,性能很差。 每次调用fseek函数时,我需要将文件指针位置向后移动100个字节: fseek(fp, -100, SEEK_CUR); 之前,我在做这个: fseek(fp, (index)*100, SEEK_SET); // ...

7得票1回答
可以使用fseek(stdin,1,SEEK_SET)或者rewind(stdin)来清空输入缓冲区,而不用使用不可移植的fflush(stdin)吗?

自从我发现fflush(stdin)不是处理输入缓冲区中的换行符问题的可移植方式后,每当我必须使用scanf时,我就会使用以下方法: while((c = getchar()) != '\n' && c != EOF); 但是今天我偶然发现了这一行话,它来自cpluspl...