我有一個運行在Ubuntu 10.04上的GTK程序掛起在可中斷狀態,我想了解strace
的輸出。特別是,我有這樣一行:識別導致從strace掛起的文件
read(5, 0x2ba9ac4, 4096) = -1 EAGAIN (Resource temporarily unavailable)
我懷疑5
是文件描述符,0x2ba9ac4
此文件中的地址進行讀取,並4096
數據量讀取。你可否確認?更重要的是,如何確定程序正在嘗試讀取哪個文件?該文件描述符不存在於/proc/pid/fd
(這可能是程序掛起的原因)。
不錯,非常感謝! – Greg
這指向'/ etc/passwd' ...我能確定它是否正確,即有沒有可能通過另一個函數修改文件描述符而不是'open'?謝謝 – Greg
如果它是第一個'打開',並且這個文件描述符位於錯誤的'read'之上,那麼是的,那個文件就是那個。文件描述符只有在調用close時才能被重用。如果你想確定,使用'-eopen,read,close'。文件描述符與相應的'open'和'close'之間的文件唯一關聯。 – liberforce