0

C では stdin ファイル記述子が 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
    }
4

1 に答える 1

0

readファイル記述子から使用します0

気をつけろ!scanfバッファリングが に干渉する可能性があるため、使用しないでくださいselect

于 2013-09-26T19:53:51.690 に答える