- 论坛徽章:
- 0
|
我想做一个写日志的组件以打开文件后,直到写入文件大小为20mb 的时候
才会关闭这个文件, 可是如果在这个文件没有达到20mb , 也就是没有关闭
文件操作时, 我就将log 文件删除, 将不会现写入日志, 但它没有报错,还是可以
执行程序. 请问怎么解决这个问题????
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/file.h>
#include <errno.h>
// 测试程序 AIX 下可以通过
int main()
{
while(1)
{ // 在这里打开后让它一直为写
FILE *fp = fopen( "log", "a+" );
while(1)
{
// 我不想在这每次都判断一下文件存不存在
int bt = fprintf( fp,"%s\n", "测试日志-------------搞它!" );
if( bt < 0 )
{
// 删除log 文件后并没有进来, 没报错
printf(" fprintf 写入报错 bt[%d] \n", bt );
break;
}
if( fflush(fp) < 0 )
{
// 删除log 文件后并没有进来, 没报错
printf(" fflush 报错 errno[%d] \n", errno );
break;
}
sleep(2);
}
fclose(fp);
}
return 0;
} |
|
|