मैं घंटों के लिए पढ़ रहा हूं लेकिन समझ नहीं पा रहा हूं कि दो ताले के बीच अंतर क्या है। एकमात्र चीज जो मैं समझता हूं वह यह है कि fcntl()
लॉक एक दानेदार लॉक की पेशकश कर रहा है जो विशिष्ट बाइट लॉक कर सकता है और केवल fcntl()
एनएफएस लॉकिंग का समर्थन करता है।`fcntl` और` flock` के साथ लॉक करने के बीच क्या अंतर है?
ऐसा कहा जाता है कि अंतर उनके अर्थशास्त्र में है, dup()
या fork()
द्वारा डुप्लिकेट किए जाने पर वे व्यवहार कैसे करते हैं, लेकिन मुझे समझ में नहीं आता कि अभ्यास में क्या अंतर है।
मेरे परिदृश्य है कि मैं एक fork()
आधारित सर्वर, जहां हर काँटेदार प्रक्रिया एक ही फाइल को लिख रहा है जब कुछ होता है में एक लॉग फ़ाइल के लिए लिख रहा हूँ है। मैं flock()
का उपयोग क्यों करना चाहूंगा और मैं fcntl()
ताले का उपयोग क्यों करना चाहूंगा?
लिनक्स के लिए पिछला प्रश्न मिला। दिलचस्प जवाब Posix भी उल्लेख करता है। http://stackoverflow.com/questions/22409780/flock-vs-lockf-on-linux –
'झुंड()' और 'लॉकफ़() 'दो अलग-अलग चीजें हैं,' लॉकफ़()' आमतौर पर 'fcntl() ' , और मैं पूछ रहा था कि वास्तव में अर्थशास्त्र क्या हैं (बंद करने और गुजरने के संबंध में व्यवहार)। – Quaker
जो लिंक मैंने लिंक किया है, वह शुरू होता है * "झुंड() और लॉकफ() के बीच व्यावहारिक अंतर अर्थशास्त्र (समापन और उत्तीर्ण होने के संबंध में व्यवहार) में है" और 'लॉकफ()' 'fcntl() 'को लपेट सकता है' जवाब प्रासंगिक है। –