-1

Linux のマニュアルには、次のように記載されています。

The operation of select() and pselect() is identical, other than these
       three differences:

       (i)    ...

       (ii)   select() may update the timeout argument to indicate how much time
              was left.  pselect() does not change this argument.
       (iii)  ...

更新できると書いてありますが、どうすればいいですか?同じパラメータで select() を再度呼び出しますか?

4

2 に答える 2

2

更新できると書いてありますがどうすればいいですか?

そんなことはないといいます。それは、関数がそれを変更できると言います。標準的なフレーズは少し異なります:

正常に完了すると、select() 関数はタイムアウト引数が指すオブジェクトを変更することがあります

于 2013-03-13T19:56:04.443 に答える
1

呼び出し中にタイムアウト構造の内容を変更しないでください。ただし、選択を停止して、新しいタイムアウトで再開することはできます。

通常、 を使用してマルチスレッド アプリケーションを作成する場合select、たとえば、処理されたファイル記述子のリストを更新するために、この呼び出しを中断する方法を提供します。これは、たとえばソケット ペアを使用して実現できます。ソケット ペアの 1 つのソケットは制御スレッドに使用され、もう 1 つのソケットは常に に追加されfd_setます。それは別の主題ですが。

于 2013-03-13T20:13:22.937 に答える