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 errorn");
exit(1);
}

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

    fclose(fp);

    return 0;

}

解决方案

解决了,是因为 直接break 然后rewind到头,上次read() 到缓存的文件没有读到最后,不会重新read(),解决方法是 将 break 修改为 fseek(fp, -1L, SEEK_END)

解决方案二:

sleep(1); 这句,这不是休眠1秒,sleep函数的参数单位是毫秒,所以如果休眠1秒应该是sleep(1000);

解决方案三:

break后就退出了while(fgets)循环,然后在外层循环while(1)中rewind使读取又重头开始,于是呼,不断循环,读的都是前面几行。

时间: 2024-09-13 04:55:52

c处理变化文件问题-c 文件读写问题,rewind,break的相关文章

异常-c# 程序调用外部dll文件对采集模块进行读写,不定时出现以下错误

问题描述 c# 程序调用外部dll文件对采集模块进行读写,不定时出现以下错误 问题签名: 问题事件名称: BEX 应用程序名: NangGang11.20.vshost.exe 应用程序版本: 9.0.21022.8 应用程序时间戳: 47316898 故障模块名称: MSVCR80.dll 故障模块版本: 8.0.50727.6195 故障模块时间戳: 4dcddbf3 异常偏移: 00008aa0 异常代码: c000000d 异常数据: 00000000 解决方案 光给出一个异常信息,天知

Python_文件对象类型及其读写函数详解

软件环境 系统  UbuntuKylin 14.01 软件  Python 2.7.3 IPython 4.0.0 file()文件对象 file(name[, mode[, buffering]]) -> file object  Open a file. The mode can be 'r', 'w' or 'a' for reading (default),writing or appending. The file will be created if it doesn't exist

文件读写-求救…c++怎么将一个txt文件里的汉字读写到另一个新建文件中?

问题描述 求救-c++怎么将一个txt文件里的汉字读写到另一个新建文件中? 中文要怎么读啊-都是乱码,一行中文 饴糖:耛糖,胶饴,读到:就停止了,而且前面读的是乱码 解决方案 信息从一个txt文件传输到另一个txt文件的过程.中间是用WAV文件来传送第一个文件的信息的二进制码.(在MATLAB中)读一个文件里的某个值,然后写到另外一个文件内. 解决方案二: 设置读写文件时的编码格式为utf8 解决方案三: 一个汉字占两个字节,所以,一次要读两个字节,然后再判断文件是否结束. 解决方案四: 置读写

文件类型,c语言文件读写,文件缓冲,文件打开方式,文件操作函数

文件类型分为:流文件和设备文件,设备文件比如:VGA接口,串口,usb口,网口,串口,这些接口都被操作系统抽象成为了文件. 当我们写程序的时候默认已经帮我们打开了三个文件 分别是: stdin:标准输入,stdout:标准输出,stderr:标准出错,scanf实际上接收的是标准输入的数据,这时候的标准输入就是我们的键盘.              有四种方式清空缓冲区:      A.加'\n';            B.程序正常退出;      C.通过fflush(stdout)也可以清

文件操作ofstream,open,close,ifstream,fin,按照行来读取数据, fstream,iosin iosout,fio.seekg(),文件写入和文件读写,文件拷贝和文件

 1.ofstream,open,close 写入文件 #include<iostream> #include<fstream>   using namespace std;   //通过ofstream的方式实现写入文件 open,close void main() {     ofstream fout;  //ofstream输出文件     fout.open("E:\\1.txt");//打开文件     fout << "1

php中判断文件空目录是否有读写权限

Example #1 is_writable() 例子  代码如下 复制代码 <?php $filename = 'test.txt'; if (is_writable($filename)) {   echo 'The file is writable'; } else {   echo 'The file is not writable'; } ?>  上面的函数有一个问题就是filename 必需.规定要检查的文件  ,必须是文件啊,目录不可判断,下面我们来判断空目录. 实例1 该功能非

php中判断文件空目录是否有读写权限的函数代码_php技巧

is_writable用来处理,记住 PHP 也许只能以运行 webserver 的用户名(通常为 \'nobody\')来访问文件.不计入安全模式的限制. Example #1 is_writable() 例子 复制代码 代码如下: <?php $filename = 'test.txt'; if (is_writable($filename)) { echo 'The file is writable'; } else { echo 'The file is not writable'; }

应用PHP文件函数获取文件信息实例教程

上一篇PHP目录函数教程中主要介绍了目录(文件夹)读取,遍历的方法,但最基本的文件管理系统同时涉及到文件信息.文件大小读取以便检查磁盘使用情况,也需要获取文件修改或访问时间,删除或移动整理文件的功能,这些都需要通过PHP文件函数同文件系统交互. 基本PHP文件函数介绍 PHP文件函数dirname()和basename()的区别 dirname()获得文件目录路径的目录部分,而basename()获得不带目录的文件名 如何通过PHP文件函数获得文件基本信息? 之前介绍了PHP目录读取实例,我们只

php学习笔记--高级教程--读取文件、创建文件、写入文件

打开文件:fopen:fopen(filename,mode);//fopen("test.txt","r"): 打开模式:r 只读方式打开,将文件指针指向文件头 r+ 读写方式打开,将文件指针指向文件头 w 写入方式,指向文件头,如果不存在则尝试创建 w+ 读写方式,指向文件头,如果不存在则尝试创建 a 写入方式打开,指向文件末尾,如果不存在则尝试创建 a+ 读写方式打开,指向文件末尾,如果不存在则尝试创建 读取文件:fread:fread(); readfile