c语言实现在文件中记录20条最新的log记录
2017-11-08 22:40
211 查看
本程序实现在txt文件记录最新的20条log记录,当txt文件中一开始没有20条记录时,逐条增加log记录,当文件中存在20条记录,此时又有记录需要写入文件时,删除最下方最老的一条记录,将最新的一条记录写入文件最顶部。
int WRITE_LOG(unsigned char *buffer_IP)
{
char arr[MAXLINE][MAXCOLUMN]={0};
int i=-1;
int j;
int k;
pFilePinter = fopen("/log.txt","r");
if (pFilePointer == NULL)
{
printf("open log file error!\n");
return -1
}
while(!feof(pFilePointer))
{
i++;
fgets(arr[i],MAXCOLUMN+1,pFilePointer);
}
fclose(pFilePointer);
pFilePointer = NULL;
fp = fopen("/log.txt","w");
if (fp == NULL)
{
printf("open log file error!\n");
return -1
}
if(i<MAXLINE)
{
for(j=i;j>=0;j--)
strcpy(arr[j+1],arr[j]);
sprintf(arr[0],buffer_IP);//buffer_IP is new log information
i++;
for(k=0;k<i;k++)
fputs(arr[k],fp);
}
else
{
for(j=i;j>1;j--)
strcpy(arr[j-1],arr[j-2]);
sprintf(arr[0],buffer_IP);//buffer_IP is new log information
for(k=0;k<i;k++)
fputs(arr[k],fp);
}
fclose(fp);
fp == NULL;
return 0;
}
int WRITE_LOG(unsigned char *buffer_IP)
{
char arr[MAXLINE][MAXCOLUMN]={0};
int i=-1;
int j;
int k;
pFilePinter = fopen("/log.txt","r");
if (pFilePointer == NULL)
{
printf("open log file error!\n");
return -1
}
while(!feof(pFilePointer))
{
i++;
fgets(arr[i],MAXCOLUMN+1,pFilePointer);
}
fclose(pFilePointer);
pFilePointer = NULL;
fp = fopen("/log.txt","w");
if (fp == NULL)
{
printf("open log file error!\n");
return -1
}
if(i<MAXLINE)
{
for(j=i;j>=0;j--)
strcpy(arr[j+1],arr[j]);
sprintf(arr[0],buffer_IP);//buffer_IP is new log information
i++;
for(k=0;k<i;k++)
fputs(arr[k],fp);
}
else
{
for(j=i;j>1;j--)
strcpy(arr[j-1],arr[j-2]);
sprintf(arr[0],buffer_IP);//buffer_IP is new log information
for(k=0;k<i;k++)
fputs(arr[k],fp);
}
fclose(fp);
fp == NULL;
return 0;
}
相关文章推荐
- 【记录】尝试用android-logging-log4j去实现log输出内容到sd卡中的文件的功能
- 使用触发器实现记录oracle用户登录失败信息到alert.log日志文件
- linux中用C语言实现的自动在文件末尾不断添加记录的完整代码
- C语言通过网络实现发送文件的一点记录
- 自己动手实现一个守护进程,当控制台窗口关闭时还可以在后台运行。每隔一秒钟向my.log文件中插入一条记录
- Linux下C语言实现文件复制
- log4net: 一个对象实例对应一份 log 文件的实现
- (C语言)头文件实现的函数
- ADO实现查找第10到20条记录
- 每个分类取最新的几条的SQL实现(转载记录)
- 【2010支付宝西安最新笔试题..】 C# 实现 100G数据文件查找100个最大值
- 用c语言实现一个文件切割器
- 日志模块(一头文件就实现了日志记录)
- 读取配置文件[方式一]之纯C语言实现
- 用c语言写cgi程序(3)---实现文件上传
- C语言实现二进制文件读写
- 跨盘符文件移动的实现(C语言)
- C语言实现myql中存取二进制文件
- 取文件夹中文件的更新时间最新10个文件记录
- 用c语言实现文件拷贝