gpt4 book ai didi

C - 使用系统调用打印文件?

转载 作者:太空宇宙 更新时间:2023-11-04 06:18:28 26 4
gpt4 key购买 nike

我正在尝试熟悉系统调用和 C。我正在尝试读取一个文件并将所有内容写入命令行。我在努力

int handle = open("./test.txt", O_RDONLY, O_TEXT);
char buf[1];
lseek(handle, 0, SEEK_SET);
while (0 != read(handle, buf, 1)) {
printf(*buf);
}

这几乎可以工作,只是它在从文件中读取的每个字符后添加了一些乱码。例如,如果文件包含 asd asd,这会将 a:_s:_d:_ :_a:_s:_d 写入控制台。知道为什么吗?我该如何解决?

最佳答案

您的代码应该会在大多数现代编译器上产生警告。因为 printf() 不接受 char。由于您是逐个字符地读取文件,因此您可以改用 putchar() 在标准输出上打印。

while (read(handle, buf, 1) == 1) {
putchar(buf[0]);
}

关于C - 使用系统调用打印文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40425168/

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