当前位置: 技术问答>linux和unix
日志文件的建立和书写?
来源: 互联网 发布时间:2015-01-20
本文导语: 小弟正在做一个文件传输程序,需要在客户端和服务器端实时记录日志,谁有类似的日志文件的建立和写函数,Unix C?有相关资料也可。分数多多。 | 我这是经典的C++日志记录程序 你可以转...
小弟正在做一个文件传输程序,需要在客户端和服务器端实时记录日志,谁有类似的日志文件的建立和写函数,Unix C?有相关资料也可。分数多多。
|
我这是经典的C++日志记录程序
你可以转换成c program
不过头文件你自己去改吧
#include
#include
#include
#include
#include
#include
#include
#define TEST_MSG_M
//构造函数
MLogFile::MLogFile( char *filename)
{
MLogFile( filename, 1);
}
MLogFile::MLogFile( char *filename, int flag)
{
file_ready = 0;
if (!filename) filename = "LOG.TXT";
FileName = new char[ strlen( filename) + 1];
strcpy( FileName, filename);
CreateLogFile();
}
MLogFile::MLogFile( char *filename, int type, int flag)
{
file_ready = 0;
if (!filename) filename = "LOG.TXT";
FileName = new char[ strlen( filename) + 1];
strcpy( FileName, filename);
FileType = FILETYPE_UNLIMITED;
if (type == FILETYPE_UNLIMITED)
{
CreateLogFile();
}
else
{
FileType = FILETYPE_LIMITED;
struct stat sbuf;
if( findfirst( FileName, &sbuf) == 0
&& (sbuf.st_mode & S_IFMT) == S_IFREG )
{
if (sbuf.st_size > LOGFILE_MAXSIZE)
{
CreateLogFile();
}
else file_ready = 1;
}
else CreateLogFile();
}
}
MLogFile::~MLogFile()
{
delete[] FileName;
}
int MLogFile::Write( char *fmtstr, ...)
{
int rcode = 0;
if(!LogSwitch()) return rcode;
FILE *File;
if( file_ready)
{
va_list argptr;
va_start( argptr, fmtstr);
vsprintf( buffer, fmtstr, argptr);
va_end( argptr);
if( File = fopen( FileName, "at"))
{
if( fwrite( buffer, sizeof( buffer[0]), strlen( buffer), File)
你可以转换成c program
不过头文件你自己去改吧
#include
#include
#include
#include
#include
#include
#include
#define TEST_MSG_M
//构造函数
MLogFile::MLogFile( char *filename)
{
MLogFile( filename, 1);
}
MLogFile::MLogFile( char *filename, int flag)
{
file_ready = 0;
if (!filename) filename = "LOG.TXT";
FileName = new char[ strlen( filename) + 1];
strcpy( FileName, filename);
CreateLogFile();
}
MLogFile::MLogFile( char *filename, int type, int flag)
{
file_ready = 0;
if (!filename) filename = "LOG.TXT";
FileName = new char[ strlen( filename) + 1];
strcpy( FileName, filename);
FileType = FILETYPE_UNLIMITED;
if (type == FILETYPE_UNLIMITED)
{
CreateLogFile();
}
else
{
FileType = FILETYPE_LIMITED;
struct stat sbuf;
if( findfirst( FileName, &sbuf) == 0
&& (sbuf.st_mode & S_IFMT) == S_IFREG )
{
if (sbuf.st_size > LOGFILE_MAXSIZE)
{
CreateLogFile();
}
else file_ready = 1;
}
else CreateLogFile();
}
}
MLogFile::~MLogFile()
{
delete[] FileName;
}
int MLogFile::Write( char *fmtstr, ...)
{
int rcode = 0;
if(!LogSwitch()) return rcode;
FILE *File;
if( file_ready)
{
va_list argptr;
va_start( argptr, fmtstr);
vsprintf( buffer, fmtstr, argptr);
va_end( argptr);
if( File = fopen( FileName, "at"))
{
if( fwrite( buffer, sizeof( buffer[0]), strlen( buffer), File)
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。