tailf实现代码

最近在建立爬虫的自动化测试体系,这块要能够监测apache的access-log做验证,也就是类似tailf的功能,下面就是一个实现:

 

int main(int argc, char **argv) {
    
char buffer[BUFSIZ];
    size_t osize, nsize;
    FILE 
*str;
    
const char *filename;
    
int count;

    
if (argc != 2) {
        fprintf(stderr, 
"Usage: tailf logfile\n");
        exit(
1);
    }

    filename 
= argv[1];

    
//tailf(filename, 10);

    
for (osize = filesize(filename);;) {
        nsize 
= filesize(filename);
        
if (nsize != osize) {
            
if (!(str = fopen(filename, "r"))) {
                fprintf(stderr, 
"Cannot open \"%s\" for read\n", filename);
                perror(argv[
0]);
                exit(
1);
            }
            
if (!fseek(str, osize, SEEK_SET))
                
while ((count = fread(buffer, 1sizeof(buffer), str)) > 0)
                    fwrite(buffer, 
1, count, stdout);
            fflush(stdout);
            fclose(str);
            osize 
= nsize;
        }
        usleep(
250000); /* 250mS */
    }
    
return 0;

} 

 

 

 

转载于:https://www.cnblogs.com/welkinwalker/archive/2011/06/22/2087410.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值