在C语言中,如何按顺序将文件写入磁盘?
我想写一个程序,将数据作为一个连续的数据块写入磁盘,这样当我从磁盘读回数据时,我就可以不停地读取一长串字节。关于这个问题,我有什么参考资料吗 我本质上是在问,是否有可能连续写入多个文件的数据,并读取超过一个或多个EOF的数据,以检索写入的数据在C语言中,如何按顺序将文件写入磁盘?,c,disk,sequential,writing,C,Disk,Sequential,Writing,我想写一个程序,将数据作为一个连续的数据块写入磁盘,这样当我从磁盘读回数据时,我就可以不停地读取一长串字节。关于这个问题,我有什么参考资料吗 我本质上是在问,是否有可能连续写入多个文件的数据,并读取超过一个或多个EOF的数据,以检索写入的数据 我知道fwrite和fopen,我只想确保写入磁盘的数据是连续的。这取决于底层文件系统是什么,因为它依赖于文件系统。您需要查看哪些是为文件保留的连续存储区域。在Windows上,您可以使用CreateFile打开未格式化的卷,然后写入连续的数据块。它不会是
我知道fwrite和fopen,我只想确保写入磁盘的数据是连续的。这取决于底层文件系统是什么,因为它依赖于文件系统。您需要查看哪些是为文件保留的连续存储区域。在Windows上,您可以使用CreateFile打开未格式化的卷,然后写入连续的数据块。它不会是一个文件,但您可以按照您所说的那样将其读回
根据NTFS的说法,如果可能的话,您会尝试分配连续空间,但添加时您的机会较低。
fwrite
和fread
问题要求我们推荐或查找书籍、工具、软件库,教程或其他非站点资源对于堆栈溢出来说是非主题的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决它所做的工作。你甚至没有读过C语言书,对吗?我知道fread和fwrite,但我不知道函数的内部是如何工作的。fwrite如何保证写入磁盘的是一个连续的数据块。谢谢您的回复。没有一种方法可以使它对任何文件系统都通用?我希望它是独立于文件系统的。@kdibene1,不,没有办法使它通用于任何文件系统。即使这样,媒体本身也可以左右事物。例如,SSD驱动器通常会在写入时重新映射块。这是Windows特有的,但我正在寻找一种在C中执行此操作的通用方法。C本身不提供任何超出其运行时库的内容。你必须像我们其他人一样去做。自己编写这些通用函数,然后为所有要部署到的平台编写它们的实现。