我有一个运行在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