2

私のプログラムは改行のないメッセージのみを受け取りますが、Linux で stdin を読み取る必要があります。

このコードを試しましたが、機能しません:

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(man ページに詳細があります)。

基本的には、2 つのtermios構造体を作成し、一方を で現在の設定で初期化しtcgetattr、構造体を他方の構造体にコピーし、その中のバッファ設定を変更してから、新しい構造体で端末を設定するtcsetattrだけです (もちろん、あなたは終わった)。

于 2013-03-07T17:47:12.273 に答える