运行第二次GetLastError为183
createFile函数的功能是创建文件和打开文件;第一次运行下面程序创建了一个文件a.txt,GetLastError为0,说明创建文件成功;第二次运行改程序可以打开该文件,但结果是GetLastError为183,这是为什么?
#include "stdio.h"
#include <string.h>
#include "windows.h"
void playCEwav()
{
HANDLE handle ;
DWORD Num;
int fileSize = 0;
char Buffer[] = "这是个刚创建的文件";
handle = (HANDLE)CreateFile("C:\\a.txt",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
printf("error %d\n", GetLastError());
if (handle != INVALID_HANDLE_VALUE)
{
SetFilePointer(handle,0,0,FILE_END);
WriteFile(handle,Buffer,sizeof(Buffer),&Num,NULL);
MessageBox(NULL,Buffer,"re",MB_OK);
CloseHandle(handle);
}
}
int main(int argc, char *argv[])
{
playCEwav();
}
[解决办法]
第一次是因为你文件不存在,执行一次之后文件存在了,当文件已存在时,无法创建该文件。所以返回183.