[英]Determining whether a readable file descriptor is the read end of a pipe
要獲取有關open fd的信息,可以使用fstat()。 我猜測結果的st_mode應該是管道的S_IFIFO。 或者,/ proc / self / fd /和/ proc / self / fdinfo /還提供有關文件描述符的一些信息。 請記住,/ proc是特定於Linux的。
但是,我認為首先嘗試使用splice()並且如果失敗(使用EINVAL?)可能會更容易回到你的魔法。
作為替代方案,如果“fd與管道,套接字或FIFO相關聯”,則lseek()
將使用ESPIPE
失敗。 因此,無操作lseek(fd, 0, SEEK_CUR)
將告訴您文件描述符是否是這些中的任何一個。
在我的情況下,這涵蓋了我感興趣的所有案例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.