आप अन्य प्रक्रिया (स्रोत कोड है) को नियंत्रित करते हैं, तो सबसे अच्छा योजना दोनों प्रक्रियाओं में सलाहकार ताले उपयोग करने के लिए है। यह लॉकिंग POSIX में परिभाषित है, और ऑपरेटिंग सिस्टम में पोर्टेबल होगा।
लिनक्स में, आप अन्य प्रक्रियाओं द्वारा कौन सी फाइलें खोली गई हैं, यह देखने के लिए उपयोगिता lsof उपयोग कर सकते हैं।
यह आपके लिए अनुमतियों के लिए सीमित है - आपको एक विशेषाधिकार प्राप्त उपयोगकर्ता के रूप में चेक करना है, या आपको केवल उसी उपयोगकर्ता द्वारा खोले गए फाइलों के परिणाम मिलेंगे, जो चेक कर रहे हैं।
मुझे केवल कमांड लाइन उपयोगिता के बारे में पता है, न कि किसी भी सिस्टम कॉल के जिसे आप सीधे सी कोड से उपयोग कर सकते हैं।
लिनक्स में, किसी दिए गए फाइल सिस्टम (माउंट-ओ mand) के लिए mandatory locking चालू करना भी संभव है, और फ़ाइल (chmod g-x, g + s) पर विशेष झंडे सेट करना भी संभव है। फिर जब आपकी प्रक्रिया एक लिखने के लॉक को प्राप्त करने का प्रयास करती है, तो यह विफल हो जाएगी यदि किसी अन्य प्रक्रिया में फ़ाइल खुलती है। इसका शायद ही कभी उपयोग किया जाता है, लेकिन यदि आप पूरी तरह से सिस्टम को नियंत्रित करते हैं, तो यह एक विकल्प हो सकता है।
+1 मैं एक ऐप ढूंढ रहा हूं जो वास्तव में handle.exe करता है। धन्यवाद ज़ोंबीशिप। – Kei