【问题标题】:read the value in stdin file descriptor 0 in C在 C 中读取标准输入文件描述符 0 中的值
【发布时间】:2013-09-26 19:11:43
【问题描述】:

我知道在 C 中标准输入文件描述符为 0。我将文件描述符 0 附加到列表并使用 select() 来检测是否有来自控制台的任何输入。

可以成功检测到有输入。但问题是我如何检索值以及如何检索? (代码忽略错误检查)

fd_set master;
int console=0; //my stdin file descriptor
fdmax = console + 1;
FD_SET(console,&master); 

select(fdmax+1, &read_fds, NULL, NULL, NULL);

for(i = 0; i <= fdmax; i++) {
    if (FD_ISSET(i, &master)){
        printf("input detected!\n");
        dump_line(stdin); //clear the buffer 

        //do w.e here
    }

【问题讨论】:

  • 使用 read() 从 fd=0 读取?

标签: c pipe stdin file-descriptor


【解决方案1】:

使用来自文件描述符0read

小心!不要使用scanf,因为它的缓冲会干扰select

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-16
    • 1970-01-01
    • 2018-10-05
    • 2020-05-05
    • 1970-01-01
    相关资源
    最近更新 更多