关于fopen函数读写指针后移的问题
如果我要从一个空文档开始建立文件,调用fopen成功返回读写指针后,我如果用fseek将读写指针后移了1M字节,然后写一个字符后关闭文件。请问文件的大小是1M+1字节还是...
如果我要从一个空文档开始建立文件,调用fopen成功返回读写指针后,
我如果用fseek将读写指针后移了1M字节,然后写一个字符后关闭文件。
请问文件的大小是1M+1字节还是1字节?如果是前者,那么文件的前1兆字节的内容是什么? 高手来讨论一下啊 展开
我如果用fseek将读写指针后移了1M字节,然后写一个字符后关闭文件。
请问文件的大小是1M+1字节还是1字节?如果是前者,那么文件的前1兆字节的内容是什么? 高手来讨论一下啊 展开
3个回答
展开全部
错误,我们看到的文件在内存中并不是连续的,被跳过的部分,将来会用来存放其他文件。指针就是支持我们能看到连续的文件的。那1M不属于你的该文件,除非你的指针后来还会回到它对应的地址。
数组在定义时内存就预留了它需要的空间,并不是数组的空间大小。这就是为什么定义数组时一定要规定数组元素的个数的原因,当然被调函数参数为数组是个特例,这时的数组是不必确定元素的,因为一次调用只需一个单位的空间(这个“单位”和数据类型有关)。
空格也是占空间的,和字符一样需要一个字节,但这并不表示它属于你的文件,你的文件中的空格占的空间,才被记入文件大小。被跳过的空间存放的是空格吗?不是,他可能是任何二进制码,只是它不被使用而已,如果要使用它,系统会把它清空也就是用000000000000替代,这个时候才变成了所谓的空格。。。。
数组在定义时内存就预留了它需要的空间,并不是数组的空间大小。这就是为什么定义数组时一定要规定数组元素的个数的原因,当然被调函数参数为数组是个特例,这时的数组是不必确定元素的,因为一次调用只需一个单位的空间(这个“单位”和数据类型有关)。
空格也是占空间的,和字符一样需要一个字节,但这并不表示它属于你的文件,你的文件中的空格占的空间,才被记入文件大小。被跳过的空间存放的是空格吗?不是,他可能是任何二进制码,只是它不被使用而已,如果要使用它,系统会把它清空也就是用000000000000替代,这个时候才变成了所谓的空格。。。。
展开全部
前一兆中没有内容
因为你通过FILE指针文件读取的是数据流,并不是读取字符或者什么
前面1M为空,好比数组a[100]中,他的大小也是400字节一样
因为你通过FILE指针文件读取的是数据流,并不是读取字符或者什么
前面1M为空,好比数组a[100]中,他的大小也是400字节一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是前者,那1M也要算在内的
内容是空格吧
内容是空格吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询