gpt4 book ai didi

c - 使用 C 中的 read(2) 函数从缓冲区打印

转载 作者:太空宇宙 更新时间:2023-11-03 23:51:32 24 4
gpt4 key购买 nike

我正在尝试使用读取函数读取位,但我不确定应该如何使用缓冲区打印结果。

目前代码片段如下

 char *infile = argv[1];
char *ptr = buff;
int fd = open(infile, O_RDONLY); /* read only */
assert(fd > -1);
char n;
while((n = read(fd, ptr, SIZE)) > 0){ /*loops that reads the file until it returns empty */
printf(ptr);
}

最佳答案

读入ptr 的数据可能包含\0 字节、格式说明符并且不一定以\0 结尾。不使用 printf(ptr) 的所有充分理由。相反:

// char n;
ssize_t n;
while((n = read(fd, ptr, SIZE)) > 0) {
ssize_t i;
for (i = 0; i < n; i++) {
printf(" %02hhX", ptr[i]);
// On older compilers use --> printf(" %02X", (unsigned) ptr[i]);
}
}

关于c - 使用 C 中的 read(2) 函数从缓冲区打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18985488/

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