使用C连续读取已打开的文件

2023-12-02

我正在实现一个低重量的应用程序,我必须经常打开并读取 /proc/pid 或 tid/task/stat 详细信息。如果应用程序是多线程的,我必须阅读更多统计文件。因此打开、读取和关闭使我的监控应用程序非常慢。有没有办法避免重复打开文件并且仍然能够读取更新的内容?

我进行了以下实验,但没有看到成功。我更改了“test.txt”中的数据,但未读取新数据。是不是因为内存中的文件没有更新?当我修改并保存“test.txt”时会发生什么?

#include <stdio.h>
int main()
{
    FILE * pFile;
    char mystring [100];
    pFile = fopen ("test.txt" , "r");
    while(1){
        if (pFile == NULL) perror ("Error opening file");
        if ( fgets (mystring , 100 , pFile) != NULL ){
            puts (mystring);
            fseek ( pFile , 0 , SEEK_SET );
        }
        sleep(1);
    }
    fclose (pFile);
    return 0;
}

尝试这样的事情:

for (;;) {
    while ((ch = getc(fp)) != EOF)  {
        if (putchar(ch) == EOF)
            perror("Output error");
    }
    if (ferror(fp)) {
        printf("Input error: %s", errno);
        return;
    }
    (void)fflush(stdout);
    sleep(1); // Or use select
}

您可以通过研究找到完整的示例尾巴的源代码。上面的代码是对forward.c 的修改摘录。

您可以使用select监视多个文件的新数据(您需要保持它们打开)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用C连续读取已打开的文件 的相关文章

  • 如何在 Visual Studio 2010 中增强 XAML 设计器?

    当我使用 XAML 设计器时 进入设计器和退出设计器是如此困难和缓慢 当我这样做时 Visual Studio 卡了一段时间 有什么方法可以增强 XAML 设计器和编辑器吗 Ant 保存 XAML 文件时非常慢 这通常意味着您可能有复杂的
  • VB.NET 相当于 C# 属性简写吗?

    是否有与 C 等效的 VB NET public string FirstName get set 我知道你能做到 Public Property name As String Get Return name ToString End Ge
  • 如何修复此错误“GDI+ 中发生一般错误”?

    从默认名称打开图像并以默认名称保存 覆盖它 我需要从 Image Default jpg 制作图形 将其放在 picturebox1 image 上并在 picurebox1 上绘制一些图形 它有效 这不是我的问题 但我无法保存 pictu
  • C++中的类查找结构体数组

    我正在尝试创建一个结构数组 它将输入字符串链接到类 如下所示 struct string command CommandPath cPath cPathLookup set an alarm AlarmCommandPath send an
  • 将 System.Windows.Input.KeyEventArgs 键转换为 char

    我需要将事件参数作为char 但是当我尝试转换 Key 枚举时 我得到的字母和符号与传入的字母和符号完全不同 如何正确地将密钥转换为字符 这是我尝试过的 ObserveKeyStroke this new ObervableKeyStrok
  • 使用 C 语言使用 strftime() 获取缩写时区

    我看过this https stackoverflow com questions 34408909 how to get abbreviated timezone and this https stackoverflow com ques
  • 关于在 Windows 上使用 WiFi Direct Api?

    我目前正在开发一个应用程序 我需要在其中创建链接 阅读 无线网络连接 在桌面应用程序 在 Windows 10 上 和平板电脑 Android 但无关紧要 之间 工作流程 按钮 gt 如果需要提升权限 gt 创建类似托管网络的 WiFi 网
  • 单击 form2 上的按钮触发 form 1 中的方法

    我对 Windows 窗体很陌生 我想知道是否可以通过单击表单 2 中的按钮来触发表单 1 中的方法 我的表格 1 有一个组合框 我的 Form 2 有一个 保存 按钮 我想要实现的是 当用户单击表单 2 中的 保存 时 我需要检查表单 1
  • 将 Excel 导入到 Datagridview

    我使用此代码打开 Excel 文件并将其保存在 DataGridView 中 string name Items string constr Provider Microsoft Jet OLEDB 4 0 Data Source Dial
  • Rx 中是否有与 Task.ContinueWith 运算符等效的操作?

    Rx 中是否有与 Task ContinueWith 运算符等效的操作 我正在将 Rx 与 Silverlight 一起使用 我正在使用 FromAsyncPattern 方法进行两个 Web 服务调用 并且我想这样做同步地 var o1
  • 如何使用 watin 中的 FileUploadDialogHandler 访问文件上传对话框

    我正在使用 IE8 和 watin 并尝试通过我的网页测试上传文件 我不能简单地使用 set 方法设置上传文件 例如 ie FileUpload Find ById someId Set C Desktop image jpg 因为上传文本
  • 使用 Moq 使用内部构造函数模拟类型

    我正在尝试模拟 Microsoft Sync Framework 中的一个类 它只有一个内部构造函数 当我尝试以下操作时 var fullEnumerationContextMock new Mock
  • 私有模板函数

    我有一堂课 C h class C private template
  • .NET中的LinkedList是循环链表吗?

    我需要一个循环链表 所以我想知道是否LinkedList是循环链表吗 每当您想要移动列表中的 下一个 块时 以循环方式使用它的快速解决方案 current current Next current List First 电流在哪里Linke
  • 用于 C# 的 TripleDES IV?

    所以当我说这样的话 TripleDES tripledes TripleDES Create Rfc2898DeriveBytes pdb new Rfc2898DeriveBytes password plain tripledes Ke
  • 如何在按钮单击时模拟按键 - Unity

    我对 Unity 中的脚本编写非常陌生 我正在尝试创建一个按钮 一旦单击它就需要模拟按下 F 键 要拾取一个项目 这是我当前的代码 在编写此代码之前我浏览了所有统一论坛 但找不到任何有效的东西 Code using System Colle
  • 有没有办法强制显示工具提示?

    我有一个验证字段的方法 如果无法验证 该字段将被清除并标记为红色 我还希望在框上方弹出一个工具提示 并向用户显示该值无效的消息 有没有办法做到这一点 并且可以控制工具提示显示的时间 我怎样才能让它自己弹出而不是鼠标悬停时弹出 If the
  • 线程和 fork()。我该如何处理呢? [复制]

    这个问题在这里已经有答案了 可能的重复 多线程程序中的fork https stackoverflow com questions 1235516 fork in multi threaded program 如果我有一个使用 fork 的
  • 英特尔 Pin 与 C++14

    问题 我有一些关于在 C 14 或其他 C 版本中使用英特尔 Pin 的问题 使用较新版本从较旧的 C 编译代码很少会出现任何问题 但由于 Intel Pin 是操作指令级别的 如果我使用 C 11 或 C 14 编译它 是否会出现任何不良
  • 检查Windows控制台中是否按下了键[重复]

    这个问题在这里已经有答案了 可能的重复 C 控制台键盘事件 https stackoverflow com questions 2067893 c console keyboard events 我希望 Windows 控制台程序在按下某个

随机推荐

  • 扩展结构的最简单方法(PointF)

    我们需要用 PointF 沿贝塞尔曲线的位置的 t 参数 存储一条附加信息 由于该数据不容易重新计算 因此我想在计算点时将其与 PointF 一起存储 以便在其他例程中使用 我们有数百个对 PointF 的引用 因此我希望不必创建一个新的替
  • 将 javascript 与 jquery 混合

    单击后 我将一个类分配给我的元素 SVG 路径 使用纯 JavaScript this getElement classList add active 新类是它已有的一系列其他类的一部分 但是 一旦将这个新类添加到单击的元素 它也应该给出一
  • 替换所有出现的“.”使用 sed 在 '=' 之前加上 '_'

    我有一个属性文件如下 build number 153013 db create tablespace 0 db create user 0 db create schema 0 upgrade install 1 new install
  • 如何在 type="text/ng-template" 的页面中使用 javascript?

    我有这样的代码
  • 模板的显式实例化

    这个线程确实很有帮助 但我仍然对这个过程有疑问 但似乎没有得到解答 我必须在多大程度上显式实例化模板 例如 如果在我的定义文件中 我在每个函数 友元类 运算符重载等上使用模板 我是否必须在模板实例化文件中实例化每个模板 我正在使用的当前方法
  • 如何读取函数调用后的代码块?

    我是 swift 新手 我需要帮助阅读以下代码 函数调用 self table update completedItem 之后的代码块的含义是什么 代码块第一行的 result error 的含义是什么 self table update
  • Objective-C中如何动态加载类?

    如何在 Objective C 中动态加载类 根据我的需要 类名将位于一个文本文件中 我需要读取它 然后动态加载该类 这段代码正在 Java 中加载一个类 我希望在 Objective C 中完成相同的功能 public class Mai
  • C 中数组的 & 运算符定义

    最近的一个问题引发了一场围绕数组和指针的讨论 这个问题是指scanf s name vs scanf s name 对于下面的代码 微软实际上在VS2010 也许更早的版本 中为你解决了这个问题 include
  • 从数据库中获取中值

    中位数定义为将数据集的上半部分与下半部分分开的数字 从 STATION 查询北纬度 LAT N 的中位数 并将结果四舍五入到小数位 输入格式 STATION表描述如下 Field Type ID NUMBER CITY VARCHAR2 2
  • Quickblox 网页版 - 创建 1 对 1 聊天

    我正在尝试从网络客户端创建一对一聊天 我下载了SDK和群聊示例 除了网络之外 所有平台似乎都有很好的例子 例如 http quickblox com developers Android XMPP Chat Sample 任何人都可以提供代
  • jQuery 验证适用于输入 type="submit",但不适用于 html 按钮元素。为什么?

    使用 ASP NET 为什么 bassistance de jQuery 验证插件在使用 input type submit 元素而不是 html 按钮元素时阻止表单提交 使用 html 按钮 type submit 标记时会触发验证 但表
  • Ansible 正则表达式转义美元字符

    我正在尝试使用 Ansible 修改配置文件中的 URL 值 CONSOLE URI http 172 18 18 103 controller 我正在使用 lineinfile 模块 但它不起作用 我尝试用双反斜杠转义 但它也不起作用 l
  • 在 Google App Engine 上选择 Java 与 Python

    目前 Google App Engine 支持 Python 和 Java Java 支持不太成熟 然而 Java 似乎有更长的库列表 尤其是对 Java 字节码的支持 无论用于编写该代码的语言如何 哪种语言能提供更好的性能和更强大的功能
  • 新旧风格类中的Python析构函数[重复]

    这个问题在这里已经有答案了 我试图理解为什么对象销毁在新样式类中与旧样式类中的工作方式不同 class Wrapper class Inner object def del self print Inner destructor inner
  • Angular cli 2错误无法通过AOT构建解析XXXXX的所有参数

    import Injectable Inject from angular core import Subject from rxjs Subject import CompleterData CompleterItem from ng2
  • 解析Java中类似乳胶的语言

    我正在尝试用 Java 为类似于 Latex 的简单语言编写一个解析器 即它包含大量非结构化文本 中间有几个 commands with some parameters 像 这样的转义序列也必须考虑在内 我尝试用 JavaCC 生成一个解析
  • 从片段中的 sqlite 动态设置复选框

    我无法找出在列表视图中存储和显示复选框的最佳方法 现在我在 getView 方法中有代码 Override public View getView final int position View convertView ViewGroup
  • 在 Node.js 中克隆对象

    在 Node js 中克隆对象的最佳方法是什么 例如我想避免出现以下情况 var obj1 x 5 y 5 var obj2 obj1 obj2 x 6 console log obj1 x logs 6 该对象很可能包含复杂类型作为属性
  • 从文本文件中删除最后一行

    我需要从文本文件中删除最后一行 我知道如何在 C 中打开和保存文本文件 但如何删除文本文件的最后一行 文本文件的大小始终不同 有些有 80 行 有些有 20 行 有人可以告诉我该怎么做吗 Thanks 通过少量的行 你可以轻松地使用这样的东
  • 使用C连续读取已打开的文件

    我正在实现一个低重量的应用程序 我必须经常打开并读取 proc pid 或 tid task stat 详细信息 如果应用程序是多线程的 我必须阅读更多统计文件 因此打开 读取和关闭使我的监控应用程序非常慢 有没有办法避免重复打开文件并且仍