किसी खुली हुई फ़ाइल की फ़ाइल ऑफ़सेट का पता कैसे करें?


26

मेरी समस्या यह है कि lsof -p pid मैं किसी प्रक्रिया की खोली हुई फ़ाइल की सूची का पता लगा सकता हूँ जिसकी प्रक्रिया आईडी pid है। लेकिन क्या प्रत्येक एक्सेस की गई फ़ाइल की फ़ाइल ऑफसेट का पता लगाने का एक तरीका है?

कृपया मुझे कुछ सुझाव दें?

जवाबों:


38

लिनक्स पर, आप Nप्रक्रिया PIDमें फ़ाइल डिस्क्रिप्टर संख्या की स्थिति पा सकते हैं /proc/$PID/fdinfo/$N। उदाहरण:

$ cat /proc/687705/fdinfo/36
pos:    26088
flags:  0100001

एक ही फ़ाइल को कई फ़ाइल डिस्क्रिप्टर का उपयोग करके कई बार विभिन्न पदों के साथ खोला जा सकता है, इसलिए आपको एक से अधिक मामलों में प्रासंगिक एक का चयन करना होगा। उपयोग:

$ readlink /proc/$PID/fd/$N

यह जानने के लिए कि संबंधित फ़ाइल डिस्क्रिप्टर किस फ़ाइल से जुड़ा हुआ है (यह एक फ़ाइल नहीं हो सकती है, इस मामले में सिमलिंक झूल रहा है)।


1
आपका जवाब बहुत अच्छा है।
ता थान दीन्ह

12

lsof-oविकल्प के साथ ऐसा कर सकते हैं ।

लिनक्स के तहत, इसकी जानकारी इससे मिलती है /proc, इसलिए आप इसे वहां भी प्राप्त कर सकते हैं


मेरे आखिरी सवाल को एक लंबा समय हो गया है, और मैं लंबे समय से यहां नहीं हूं। जवाब के लिए धन्यवाद।
ता थान दीन्ह

मैं इस काम की पुष्टि कर सकता हूं। ऑफसेट को हेक्स के रूप में दिया गया है, हालांकि।
बेंजामिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.