我有一个守护程序,它可以在整个操作过程中打开一个文件并将其写入(通常每次都是几天)。为了支持日志旋转,我希望能够识别句柄引用的文件位于原始位置的新位置。从Linux中的文件句柄确定文件路径
这可能吗? fstat()不会为这种情况提供任何有用的信息。
我目前的解决方案是在日志写入功能中测试日志文件的存在,如果它不存在,关闭旧的句柄并打开一个新的句柄。这工作,但是是黑客,并有一定的局限性。在我的情况下,我们的系统组使用一个工具进行日志轮换,要求他们在旋出后触摸文件,这导致我的守护进程继续认为它的文件句柄指向正确的位置。
看看这个线程,看看在PHP手册中是否有类似的功能。 http://stackoverflow.com/questions/1188757/getting-filename-from-file-descriptor-in-c – Jake