2011-07-16 24 views

回答

11

這是什麼?

文件描述符是進程用來讀取或寫入打開文件並打開網絡套接字的對象。

FileDescriptor可以寫入表示原始Linux文件描述符標識符的對象,並返回對象以運行原始文件描述符。返回的文件描述符是原始文件描述符的一個副本:對象和fd不同,但在相同的基礎文件流上運行,具有相同的位置。

它能做什麼?

創建管道,從套接字創建fds,打開/關閉文件。

+0

我可以使用PercelFileDescrptor從套接字接收視頻 因爲它看起來與套接字和mediaplayer之間的連接管道相同 – user829821

3

它實現了Parcable API,允許將其放入Bundles和Intents中。甚至可以在進程之間發送FileDescriptor。 (我沒有測試過)。

此外VPNService給你一個ParcelFileDescriptor。

+0

這很棒。但我的問題是如何找到該文件的路徑(如果它是一個文件) –

+0

可能不適用於官方API它只是一個包裝的FD或換句話說只是一個整數。我不知道一個UNIX API可以讓你獲得一個fd的路徑。 – plaisthos

+0

@plaisthos:在Linux(和Android)上,/ proc/$ PID/fd/$ FD是實際文件的符號鏈接。我不確定這是否可以依賴。 – mvds

0

無論何時打開文件,操作系統都會創建一個條目來表示該文件並存儲其信息。每個條目都由一個整數值表示,這個條目被稱爲文件描述符。 基本上,Java類FileDescriptor提供了代表打開文件,開放套接字或字節的其他源或接收器的底層機器特定結構的句柄。

+0

添加對您答案的引用 – NSNoob