沒什麼新的內容,自己的練習代碼,供大家點評。 ...
沒什麼新的內容,自己的練習代碼,供大家點評。
/* Windows系統編程--實例 1)複製文件 */ #define UNICODE //#define _UNICODE #include <windows.h> #include <tchar.h> #include <stdio.h> #define BUF_SIZE 2 int _tmain(int argc,LPTSTR argv[]) { HANDLE hFileIn, hFileOut; TCHAR nBuff[BUF_SIZE]; DWORD nIn, nOut; if(3^argc) { puts("Useage:cpWFile file1 file2 \n"); return 1; } /* CreateFile函數原型: HANDLE CreateFile(lpName, ) */ hFileIn=CreateFile(argv[1], //要打開或者要創建的文件名 GENERIC_READ, //指定是讀訪問、還是寫訪問,這裡是讀訪問,可使用位旗標 0, //指定文件的共用模式,0不能共用 NULL, //這個參數指定文件的安全屬性 OPEN_EXISTING, //這個參數表明是打開已有文件,還是創建新文件,這裡打開已有文件 FILE_ATTRIBUTE_NORMAL, //設置文件的屬性和標記 NULL //已打開的文件的句柄,這個參數用於將傳入的文件與現在的文件具有相同的屬性 ); if(hFileIn==NULL) { printf("Can not open input file:%s .Error:%x\n",argv[1],GetLastError()); return 2; } hFileOut=CreateFile(argv[2], GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL ); if(INVALID_HANDLE_VALUE==hFileOut) { printf("Can not open out file.Error:%x\n",GetLastError()); return 3; } while(ReadFile(hFileIn,nBuff,BUF_SIZE,&nIn,NULL)&& nIn>0) { WriteFile(hFileOut,nBuff,nIn,&nOut,NULL); if(nIn^nOut) { printf("Fatal Error:%x\n",GetLastError()); return 4; } } CloseHandle(hFileIn); CloseHandle(hFileOut); return 0; }