2016-09-05 4 views
0

私はこのポストDetermine between socket and fdを読んでいるので、2つのフィールドを持つ構造を作成することをお勧めします。ディスクリプタがソケットかWindows上の普通のファイルであるかどうかをテストする別の方法はありますか?ディスクリプタがWindows上のソケットまたは通常のファイルであるかどうかを確認しますか?

+0

他のOSシステムとは異なり、Windowsはソケットにファイル記述子を使用しません。ソケットは独自のタイプです。最初にファイル記述子とソケットを区別する必要があるように、ファイル記述子とソケットを混在させるのはなぜですか?解決しようとしていることのコード例を表示できますか? –

答えて

1

ソケット上でしか動作しないものを試して、ENOTSOCKで失敗するかどうか確認することができます。 getsockname()などです。

+0

はいいいアイデア、私は_fstatをチェックしましたが、st_modeにはhttps://msdn.microsoft.com/en-us/library/221w8e43.aspxによる3つの可能な値しかありません – Bionix1441

+0

残念ながらS_ISSOCK(st_mode)はlinuxで定義されていますが窓 – Bionix1441

+0

@ Bionix1441それは私の答えと関係がありますか? – EJP

関連する問題