你可以这样做来读取 10 个字节:
char buffer[10];
read(STDIN_FILENO, buffer, 10);
记住read() http://pubs.opengroup.org/onlinepubs/009695399/functions/read.html不添加'\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。
Edit:
在 Linux 系统中,您可以使用以下命令找到它:
$ sudo grep 'STDIN_FILENO' /usr/include/* -R | grep 'define'
/usr/include/unistd.h:#define STDIN_FILENO 0 /* Standard input. */
注意评论/* Standard input. */