Python中文
首页
教程
问答
标签
搜索
登录
注册
自定义实现C语言中的“tail -f”功能
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p><strong>编辑:</strong>我最后使用了inotify。正如stefanB所说,inotify是一个可以使用的东西。我发现了一个尾部克隆,它使用inotify实现-f模式<a href="http://distanz.ch/inotail/" rel="nofollow noreferrer">inotail</a>。在</p> <p>原始问题文本:</p> <p>我试图在一个C项目中实现“tail-f”逻辑,为了原型化,我用python开发了它,如下所示:</p> <pre><code> # A forever loop, each 5 seconds writes a line into file.txt from time import * while 1: sleep(5) file = open("file.txt", "a") file.write("This is a test\n") file.close() </code></pre> <p>下一个代码遵循文件.txt(以上代码更新)</p> ^{pr2}$ <p>所有的工作都很好,但是C实现不工作(没有检查错误代码)。省略了stdio.h、string.h和unistd.h的包含(彩色化隐藏了头包含代码)。在</p> <pre><code> #define LINE_LEN 256 int main(int argc, char **argv) { FILE *f; char line[LINE_LEN]; f = fopen("file.txt", "r"); fseek(f, 0, SEEK_END); while (1) { fgets(line, LINE_LEN, f); if (strlen(line) == 0) { sleep(1); } else { printf("Readed: %s", line); } } fclose(f); return 0; } </code></pre> <p>有什么想法吗?在</p> <p>用poll()而不是呈现的解决方案来实现它是个好主意吗?。在</p> <p>提前谢谢。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>一旦文件*发现错误或eof,它就设置了其内部状态,以便在后续调用中继续返回error或eof。在睡眠返回后,您需要调用<code>clearerr(f);</code>,以清除eof设置并让它尝试从文件中读取更多数据。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在乒乓球比赛中预测球的轨迹,对于AI球拍预测?
3 回答
如何在乒乓球游戏中阻止球
1 回答
如何在乘法和模中不乘空间?
8 回答
如何在乘法和除以2个不同的数字之间进行交换?
5 回答
如何在也是数据一部分的单个字符上拆分大字符串
1 回答
如何在乾草堆中找到針,有更好的解決方案嗎?
2 回答
如何在事件wxWidgets中传递自定义数据
8 回答
如何在事件中使用lambda i=i?
1 回答
如何在事件中心只接收最近的数据
5 回答
如何在事件发生之前保持云函数运行?
9 回答
如何在事件发生后使页面重定向到同一页面
2 回答
如何在事件回调之间保持python生成器的状态
7 回答
如何在事件处理程序(pythonsocket、sphinx)中保留docstring
1 回答
如何在事件处理程序中更改wxRichTextCtrl的光标位置?
6 回答
如何在事件处理程序中访问外部对象?
7 回答
如何在事件循环中将协程打包为正常函数?
10 回答
如何在事件循环之外运行协同程序?
9 回答
如何在事件循环结束时为并发未来的所有线程调用类方法?
4 回答
如何在事件文件中只保留一份摘要?
1 回答
如何在事件模板中添加事件
4 回答