gpt4 book ai didi

c - 在 Linux 上用 C 逐个字符读取文本文件

转载 作者:行者123 更新时间:2023-11-30 19:43:12 24 4
gpt4 key购买 nike

我对 C 语言还很陌生。无论如何,对于大学来说,我需要能够在 Linux 上设置 O_DIRECT 标志来读取 C 语言的文本文件。我搜索了很多,但我只找到了使用 fopen() 函数的解决方案,尽管我必须使用 open()。作为一个新手,对于编程来说,这似乎相当复杂。谁能帮我解决这个问题吗?

最佳答案

你的作业可能是关于自己实现一些buffering文件上(这就是 <stdio.h>fopen 正在为您做的事情)。

您可以使用read(2)计数为一个字节,但效率极低。实际上,您应该将几千字节的缓冲区(例如 4Kb 或 32Kb)传递给 read并且您应该使用返回的大小来管理缓冲区(并可能将一些指针推进到缓冲区中)。

阅读Advanced Linux Programming 。也许研究进行此类缓冲的库的实现( GNU glibcmusl-libc 都是 libc 的自由软件实现,因此包含您可以研究的 <stdio.h> 实现)。

不要忘记编译时包含所有警告和调试信息(例如 gcc -Wall -Wextra -g )。使用调试器 ( gdb ) 和 valgrind 。最近的GCC ,也可使用其他 gcc debugging options就像例如-fsanitize=address等等

关于c - 在 Linux 上用 C 逐个字符读取文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29845845/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com