Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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 - Fatal编程技术网

C 如何直接写入磁盘?

C 如何直接写入磁盘?,c,C,我是C编程的业余程序员,我知道如何直接从驱动器文件中读取数据。现在,我想用同样的方法将上述函数的第二个参数改为w,直接将数据写入磁盘。但即使我以管理员的身份运行程序,它也不起作用。我想知道: 如何使用C将数据直接写入驱动器或闪存驱动器 像Diskpart.exe这样的程序是如何写入磁盘的 我正在使用Windows。Windows强制执行。您必须具有管理权限,并且必须采取额外的步骤向操作系统证明您不会覆盖已装载文件系统的内容,这可能会导致整个计算机崩溃。fopen///D:,w不采取这些额外步骤。

我是C编程的业余程序员,我知道如何直接从驱动器文件中读取数据。现在,我想用同样的方法将上述函数的第二个参数改为w,直接将数据写入磁盘。但即使我以管理员的身份运行程序,它也不起作用。我想知道:

如何使用C将数据直接写入驱动器或闪存驱动器

像Diskpart.exe这样的程序是如何写入磁盘的

我正在使用Windows。

Windows强制执行。您必须具有管理权限,并且必须采取额外的步骤向操作系统证明您不会覆盖已装载文件系统的内容,这可能会导致整个计算机崩溃。fopen///D:,w不采取这些额外步骤。在我看来,你不能用fopen、fread、fwrite等做这件事;您需要直接使用、ReadFile、WriteFile等操作系统原语


正如在Q&A中所讨论的,这是现在作为的副本关闭的,这些额外步骤中的第一步是打开设备路径名以进行读写访问,即使您只想在CreateFile级别写入-泛型|泛型|写入。fopen模式w只提供对CreateFile的一般写入。您还需要指定特定的配置、共享模式、文件属性、安全属性等。

请发布并定义不起作用的内容。除非您对文件系统和NTFS的内部工作有丰富的经验,否则千万不要这样做。写入错误位置的单个字节可能会破坏整个磁盘。请直接详细说明您的确切意思b,并解释为什么您希望这样做,例如方便、安全……如果您处于用户模式,则无法绕过操作系统。@GovindParmar该评论与答案非常接近。我猜得对吗,你也在直接等待澄清?