// test.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <iostream>
typedef struct _LOG_OPERATE
{
HANDLE h_writing_log_file;
}LOG_OPERATE;
LOG_OPERATE SERVER_LOG_OPERATE;
int log_open(void)
{
char log_file_name[32];
unsigned int file_name_len = strlen("log_2013_12_03.txt");
HANDLE hFile;
/* 获取系统时间,日志是以时间日期命名的 */
SYSTEMTIME sys_time;
GetLocalTime( &sys_time );
/* 根据日期来确定日志名称 */
sprintf(log_file_name, "log_%0004d_%02d_%02d.txt", sys_time.wYear, sys_time.wMonth, sys_time.wDay);
log_file_name[file_name_len] = '\0';
/* 打开或创建日志文件 */
hFile = CreateFile(log_file_name,
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ,
NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
if(INVALID_HANDLE_VALUE == hFile)
{
printf("Open log file Error! \r\n");
SERVER_LOG_OPERATE.h_writing_log_file = NULL;
return -1;
}
/* 更新全局日志信息结构体 */
SERVER_LOG_OPERATE.h_writing_log_file = hFile;
return 0;
}
int log_write(void *p_log_content,DWORD len)
{
DWORD NumberOfBytesWritten;
BOOL result;
/* 如果日志操作无效,则重新打开日志 */
if(NULL==SERVER_LOG_OPERATE.h_writing_log_file)
{
if(0!=log_open())
{
printf("Write log file Error! \r\n");
return -1;
}
}
/* 写入日志内容 */
result = WriteFile( SERVER_LOG_OPERATE.h_writing_log_file,
p_log_content,
len,
&NumberOfBytesWritten,
NULL
);
if( (result!=1)||(NumberOfBytesWritten!=len) )
{
printf("Write log file Error! \r\n");
return -1;
}
WriteFile( SERVER_LOG_OPERATE.h_writing_log_file,
"\r\n",
4,
&NumberOfBytesWritten,
NULL
);
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
//HANDLE hFile;
//unsigned char file_buff[10] = "fuck me!";
//unsigned char file_buff_r[10];
//DWORD NumberOfBytesWritten;
//DWORD readed_num,read_num;
//SYSTEMTIME sys;
//GetLocalTime( &sys );
//printf( "%4d/%02d/%02d %02d:%02d:%02d.%03d 星期%1d\n", sys.wYear,
// sys.wMonth,
// sys.wDay,
// sys.wHour,
// sys.wMinute,
// sys.wSecond,
// sys.wMilliseconds,
// sys.wDayOfWeek );
//hFile = CreateFile("fuck_me_1.txt", // file to open
// GENERIC_READ|GENERIC_WRITE, // open for reading
// FILE_SHARE_READ, // share for reading
// NULL, // default security
// CREATE_NEW, // existing file only
// FILE_ATTRIBUTE_NORMAL, // normal file
// NULL);
//if(hFile!=NULL)
//{
// printf("Start write file!");
// WriteFile( hFile, // 文件句柄
// file_buff, // 包含写向文件的数据
// 8, // 数据包含的字符串的个数
// &NumberOfBytesWritten,
// NULL
// );
// //CloseHandle(hFile);
// //hFile = CreateFile("fuck_me_1.txt", // file to open
// // GENERIC_READ, // open for reading
// // FILE_SHARE_READ, // share for reading
// // NULL, // default security
// // OPEN_EXISTING, // existing file only
// // FILE_ATTRIBUTE_NORMAL, // normal file
// // NULL);
// SetFilePointer(hFile,0,0 ,FILE_BEGIN);
// ReadFile( hFile,
// file_buff_r,
// 5,
// &readed_num,
// NULL
// );
// file_buff_r[5]= '\0';
// printf("Read data:%s",&file_buff_r[0]);
// CloseHandle(hFile);
//}
log_open();
while(1)
{
}
return 0;
}
//
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <iostream>
typedef struct _LOG_OPERATE
{
HANDLE h_writing_log_file;
}LOG_OPERATE;
LOG_OPERATE SERVER_LOG_OPERATE;
int log_open(void)
{
char log_file_name[32];
unsigned int file_name_len = strlen("log_2013_12_03.txt");
HANDLE hFile;
/* 获取系统时间,日志是以时间日期命名的 */
SYSTEMTIME sys_time;
GetLocalTime( &sys_time );
/* 根据日期来确定日志名称 */
sprintf(log_file_name, "log_%0004d_%02d_%02d.txt", sys_time.wYear, sys_time.wMonth, sys_time.wDay);
log_file_name[file_name_len] = '\0';
/* 打开或创建日志文件 */
hFile = CreateFile(log_file_name,
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ,
NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
if(INVALID_HANDLE_VALUE == hFile)
{
printf("Open log file Error! \r\n");
SERVER_LOG_OPERATE.h_writing_log_file = NULL;
return -1;
}
/* 更新全局日志信息结构体 */
SERVER_LOG_OPERATE.h_writing_log_file = hFile;
return 0;
}
int log_write(void *p_log_content,DWORD len)
{
DWORD NumberOfBytesWritten;
BOOL result;
/* 如果日志操作无效,则重新打开日志 */
if(NULL==SERVER_LOG_OPERATE.h_writing_log_file)
{
if(0!=log_open())
{
printf("Write log file Error! \r\n");
return -1;
}
}
/* 写入日志内容 */
result = WriteFile( SERVER_LOG_OPERATE.h_writing_log_file,
p_log_content,
len,
&NumberOfBytesWritten,
NULL
);
if( (result!=1)||(NumberOfBytesWritten!=len) )
{
printf("Write log file Error! \r\n");
return -1;
}
WriteFile( SERVER_LOG_OPERATE.h_writing_log_file,
"\r\n",
4,
&NumberOfBytesWritten,
NULL
);
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
//HANDLE hFile;
//unsigned char file_buff[10] = "fuck me!";
//unsigned char file_buff_r[10];
//DWORD NumberOfBytesWritten;
//DWORD readed_num,read_num;
//SYSTEMTIME sys;
//GetLocalTime( &sys );
//printf( "%4d/%02d/%02d %02d:%02d:%02d.%03d 星期%1d\n", sys.wYear,
// sys.wMonth,
// sys.wDay,
// sys.wHour,
// sys.wMinute,
// sys.wSecond,
// sys.wMilliseconds,
// sys.wDayOfWeek );
//hFile = CreateFile("fuck_me_1.txt", // file to open
// GENERIC_READ|GENERIC_WRITE, // open for reading
// FILE_SHARE_READ, // share for reading
// NULL, // default security
// CREATE_NEW, // existing file only
// FILE_ATTRIBUTE_NORMAL, // normal file
// NULL);
//if(hFile!=NULL)
//{
// printf("Start write file!");
// WriteFile( hFile, // 文件句柄
// file_buff, // 包含写向文件的数据
// 8, // 数据包含的字符串的个数
// &NumberOfBytesWritten,
// NULL
// );
// //CloseHandle(hFile);
// //hFile = CreateFile("fuck_me_1.txt", // file to open
// // GENERIC_READ, // open for reading
// // FILE_SHARE_READ, // share for reading
// // NULL, // default security
// // OPEN_EXISTING, // existing file only
// // FILE_ATTRIBUTE_NORMAL, // normal file
// // NULL);
// SetFilePointer(hFile,0,0 ,FILE_BEGIN);
// ReadFile( hFile,
// file_buff_r,
// 5,
// &readed_num,
// NULL
// );
// file_buff_r[5]= '\0';
// printf("Read data:%s",&file_buff_r[0]);
// CloseHandle(hFile);
//}
log_open();
while(1)
{
}
return 0;
}