假设我们已经打开了一个文本文件.是否可以定义指向文件中字符的指针?如果是 - 文件中的以下字符是否会按照它们出现在文件中的相同顺序出现在内存中?
我问的原因是:
我需要处理一个文本文件.我一次读一行,我想保留一些字符串.我读入的缓冲区总是会改变,所以我无法指向它.另一方面,我不想通过将数组和strcpy文本文件中的字符定义到其中来浪费空间.
我实际上想要访问一个文件,就好像它是一个内存中的数组.
我只能使用C标准库函数.但无论如何,感谢其他建议.
您可以复制您阅读的行,但这是不可接受的,因为您认为这会占用太多内存.
您可以使用mmap()创建内存映射文件,但这是不可接受的,因为您需要与操作系统无关的内容.
您可以保留文件位置的动态记录,但由于您尚未真正阐明的原因,这是不可接受的.
最后,您可以通过将文件压缩到一个巨大的缓冲区来模拟内存映射文件,但是当(1)不是超出我时,这将是一个有效的解决方案.
总之,这些是您问题的所有可能解决方案.但是,它们都不是令人满意的,因为您的要求过于严格.
你的问题的答案是没有答案.