文件追加写

#include "stdafx.h"
#include <windows.h>
int main(int argc, char* argv[])
{
	HANDLE hFile=::CreateFile("test.txt",
		GENERIC_ALL,//文件操作方式,读写删都可
		0,//此标示无法再创建test.txt文件,必须关闭句柄才可
		NULL,//一般高级文件操作用
		OPEN_ALWAYS,//有文件就打开,没文件就创建
		FILE_ATTRIBUTE_NORMAL,//其它标示将会覆写此标示
		NULL);//基本不用,再me/98系统下.必须是null
	if(hFile==INVALID_HANDLE_VALUE){
		printf("error\n");
	}else{
	const char* cBuffer="hello world";
	DWORD dwLenght=strlen(cBuffer);
	DWORD dwNumOfWrite;    
	DWORD dwPos;
	dwPos = SetFilePointer(hFile, 0, NULL, FILE_END);//这样可以继续接写文件,而不是复写

    WriteFile(hFile, 
		cBuffer, 
		dwLenght, //写入字数
		&dwNumOfWrite,//实际写入字数
		NULL);

	::CloseHandle(hFile);
	printf("success\n");
	}  

	return 0;
}

注意:我个人不推荐直接操作win api,因为除非你是非常资深技术人员,可以考虑到线程之间的影响以及 兼容性,要不然就不要直接使用api,而是使用c运行库,例如fopen,fwrite等

你可能感兴趣的:(文件追加写)