2013-06-05 226 views
3

如何獲取描述符類型?我使用epoll來監視許多描述符,例如套接字,定時器和信號。我看到使用fstat是可能的,但是模式只說了一些關於套接字和管道的內容。 fstat manpage。是否有一個特殊的功能來標識描述符?Linux描述符類型

+0

對不起,你的問題不清楚。你想得到什麼? – kirelagin

+2

哦,我明白了,你想獲得一個描述符的類型(即套接字/文件/等),從epoll返回? – kirelagin

+0

嘗試檢查從'fstat'獲得的'st_dev'字段。獲取主數字,在'/ proc/devices'中找到它,看看你得到了什麼不同的描述符。 – ugoren

回答

1

我不認爲有任何簡單或統一的方法來做你所要求的。命令lsof] 1設法確定這個信息,所以你可能想看看這個代碼,看看他們在做什麼。

關閉我的頭頂以確定描述符是否可以使用getsockopt(2)的套接字。如果對getsockopt的調用失敗並且errno == ENOTSOCK,則描述符不是套接字。同樣,您可以使用isatty(3)來確定描述符是否屬於串行端口或終端。

+0

好的謝謝:) – Kouros