程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c處理變化文件問題-c 文件讀寫問題,rewind,break

c處理變化文件問題-c 文件讀寫問題,rewind,break

編輯:編程綜合問答
c 文件讀寫問題,rewind,break

寫了個小程序,每個1秒鐘讀取網卡eth0的流量,代碼如下,現在的問題是,我在21行加入break後,輸出就只有第二次是變化的,後面就不變了,求指點,謝謝!
#include
#include
#include
#include
#define MAXLINE 1000

int main(int argc, char *argv[])
{
FILE *fp;
char buf[MAXLINE];
char *dev=" eth0";
if((fp=fopen("/proc/net/dev", "r")) == NULL){
printf("openfile error\n");
exit(1);
}

    while(1){
            while(fgets(buf, MAXLINE, fp) != NULL){
                    if(strncmp(buf, dev, 6)==0){
                            printf("%s\n",  buf);
                            break;
                    }
            }
            rewind(fp);
            sleep(1);
    }


    fclose(fp);


    return 0;

}

最佳回答:


解決了,是因為 直接break 然後rewind到頭,上次read() 到緩存的文件沒有讀到最後,不會重新read(),解決方法是 將 break 修改為 fseek(fp, -1L, SEEK_END)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved