gpt4 book ai didi

c - unix 读写功能

转载 作者:行者123 更新时间:2023-12-04 05:37:43 24 4
gpt4 key购买 nike

/*
Low Level I/O - Read and Write
Chapter 8 - The C Programming Language - K&R
Header file in the original code is "syscalls.h"
Also BUFSIZ is supposed to be defined in the same header file
*/

#include <sys/types.h>
#include <sys/uio.h>
#include <unistd.h>

#define BUFSIZ 1

int main() /* copy input to output */
{
char buf[BUFSIZ];
int n;

while ((n = read(0, buf, BUFSIZ)) > 0)
write(1, buf, n);

return 0;
}

当我输入“∂∑∑®†¥¥¥˚π∆˜¯∫∫√ç tu 886661~EOF”作为输入时,会复制相同的内容。
如何同时存储这么多非 ASCII 字符?

BUFSIZ 是要传输的字节数。
如果对于任何值,任何值都可以从输入复制到输出,那么 BUFSIZ 如何限制字节传输?

char buf[BUFSIZ] 如何存储非 ASCII 字符?

最佳答案

您按小块读取直到 EOF:

while ((n = read(0, buf, BUFSIZ)) > 0)

这就是为什么。您逐字节地将输入复制到输出。如何将其转换回 unicode,是控制台的问题,而不是您的问题。我猜,在它可以将数据识别为符号之前,它不会输出任何内容。

关于c - unix 读写功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11707554/

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