2

我需要阅读 Linux 中的标准输入,尽管我的程序只会收到没有换行的消息。

我试过这段代码,但不工作:

int main ( void )
{
    char p_char[48];

    memset( p_char, 0, sizeof(p_char) );
    fcntl( STDIN_FILENO, F_SETFL, FNDELAY );
    read( STDIN_FILENO, p_char, sizeof(p_char) ); 

}

有人有建议吗?

4

1 回答 1

4

您需要更改终端设置,以便立即发送每个字符。您可以通过操作来做到这一点termios(手册页有详细信息)。

本质上它只涉及创建两个termios结构,使用当前设置初始化一个tcgetattr,将结构复制到另一个结构,修改其中的缓冲区设置,然后使用新结构设置终端tcsetattr(当然,在你完成了)。

于 2013-03-07T17:47:12.273 回答