एक्सेस नहीं किया जा रहा है, तो फ़ाइल हटाएं, मुझे लॉग इन फाइलों को हटाने की आवश्यकता है, लेकिन एक संभावना है कि हटाए जाने के समय उन्हें एक्सेस किया जा रहा है। पहुंचने के द्वारा, मेरा मतलब है कि एक प्रक्रिया या तो फ़ाइल को पढ़ या लिख रही है। ऐसे मामलों में, मुझे इसे हटाने के बजाय फ़ाइल को छोड़ना होगा। इसके अलावा मेरा सर्वर लिनक्स और PHP अपाचे पर चल रहा है।अगर वर्तमान में
<?php
$path = "path_to_log_file";
$log_file = "app.log";
if(!being_accessed($log_file))
{
unlink($path.$log_file);
}
?>
अब मेरे सवाल है कि कैसे मैं being_accessed
परिभाषित कर सकते हैं:
मैं क्या देख रहा हूँ (in pseudo-code
) करने के लिए कुछ इसी तरह है? मुझे पता है कि PHP भाषा में सीधे भाषा कार्य नहीं हो सकता है। मैं flock
last_access_time
तरह वर्गों के संयोजन का उपयोग बारे में सोच रहा (शायद?) और (लेकिन यह केवल उन परिस्थितियों जहां फ़ाइल flock
एक्सेस आवेदन के द्वारा एड था में उपयोगी है)
कोई सुझाव/अंतर्दृष्टि का स्वागत करते हैं ...
आप "एक्सेस किए जा रहे" फ़ाइल को कैसे परिभाषित करते हैं? –
एक प्रक्रिया हो सकती है या तो इसे पढ़ना, या इसे लिखना .. –
लिनक्स पर कोई फर्क नहीं पड़ता, फ़ाइलों को वास्तव में तब तक हटाया नहीं जाएगा जब तक कि सभी फ़ाइल पॉइंटर्स बंद नहीं हो जाएंगे। – SirDarius