Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C语言中,如何按顺序将文件写入磁盘?_C_Disk_Sequential_Writing - Fatal编程技术网

在C语言中,如何按顺序将文件写入磁盘?

在C语言中,如何按顺序将文件写入磁盘?,c,disk,sequential,writing,C,Disk,Sequential,Writing,我想写一个程序,将数据作为一个连续的数据块写入磁盘,这样当我从磁盘读回数据时,我就可以不停地读取一长串字节。关于这个问题,我有什么参考资料吗 我本质上是在问,是否有可能连续写入多个文件的数据,并读取超过一个或多个EOF的数据,以检索写入的数据 我知道fwrite和fopen,我只想确保写入磁盘的数据是连续的。这取决于底层文件系统是什么,因为它依赖于文件系统。您需要查看哪些是为文件保留的连续存储区域。在Windows上,您可以使用CreateFile打开未格式化的卷,然后写入连续的数据块。它不会是

我想写一个程序,将数据作为一个连续的数据块写入磁盘,这样当我从磁盘读回数据时,我就可以不停地读取一长串字节。关于这个问题,我有什么参考资料吗

我本质上是在问,是否有可能连续写入多个文件的数据,并读取超过一个或多个EOF的数据,以检索写入的数据


我知道fwrite和fopen,我只想确保写入磁盘的数据是连续的。

这取决于底层文件系统是什么,因为它依赖于文件系统。您需要查看哪些是为文件保留的连续存储区域。

在Windows上,您可以使用CreateFile打开未格式化的卷,然后写入连续的数据块。它不会是一个文件,但您可以按照您所说的那样将其读回


根据NTFS的说法,如果可能的话,您会尝试分配连续空间,但添加时您的机会较低。

fwrite
fread
问题要求我们推荐或查找书籍、工具、软件库,教程或其他非站点资源对于堆栈溢出来说是非主题的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决它所做的工作。你甚至没有读过C语言书,对吗?我知道fread和fwrite,但我不知道函数的内部是如何工作的。fwrite如何保证写入磁盘的是一个连续的数据块。谢谢您的回复。没有一种方法可以使它对任何文件系统都通用?我希望它是独立于文件系统的。@kdibene1,不,没有办法使它通用于任何文件系统。即使这样,媒体本身也可以左右事物。例如,SSD驱动器通常会在写入时重新映射块。这是Windows特有的,但我正在寻找一种在C中执行此操作的通用方法。C本身不提供任何超出其运行时库的内容。你必须像我们其他人一样去做。自己编写这些通用函数,然后为所有要部署到的平台编写它们的实现。