gpt4 book ai didi

c - 从标准输入读取

转载 作者:太空狗 更新时间:2023-10-29 16:23:27 26 4
gpt4 key购买 nike

在 Unix 中使用 read() 系统调用读取用户输入的可能方式有哪些。我们如何使用 read() 逐字节读取标准输入?

最佳答案

你可以这样做来读取 10 个字节:

char buffer[10];
read(STDIN_FILENO, buffer, 10);

记住read()不添加 '\0'终止以使其成为字符串(仅提供原始缓冲区)。

一次读取 1 个字节:

char ch;
while(read(STDIN_FILENO, &ch, 1) > 0)
{
//do stuff
}

别忘了 #include <unistd.h> , STDIN_FILENO在此文件中定义为宏。

有三个标准的 POSIX 文件描述符,对应于三个标准流,大概每个进程都应该期望有:

Integer value   Name
0 Standard input (stdin)
1 Standard output (stdout)
2 Standard error (stderr)

所以改为 STDIN_FILENO你可以使用 0。

编辑:
在 Linux 系统中,您可以使用以下命令找到它:

$ sudo grep 'STDIN_FILENO' /usr/include/* -R | grep 'define'
/usr/include/unistd.h:#define STDIN_FILENO 0 /* Standard input. */

注意评论 /* Standard input. */

关于c - 从标准输入读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15883568/

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