सब कुछ शीर्षक में है, लेकिन अधिक आधिकारिक तौर पर:
विंडोज मुझे एक चल रहे निष्पादन योग्य का नाम क्यों देता है, लेकिन इसे हटाएं नहीं?
सब कुछ शीर्षक में है, लेकिन अधिक आधिकारिक तौर पर:
विंडोज मुझे एक चल रहे निष्पादन योग्य का नाम क्यों देता है, लेकिन इसे हटाएं नहीं?
जवाबों:
वास्तव में फ़ाइल का नाम बदलने जैसी कोई बात नहीं है। एक फ़ाइल में एक से अधिक नाम या कोई नाम नहीं हो सकता है, इसलिए यह वह फ़ाइल नहीं है जिसका आप नाम बदल रहे हैं बल्कि निर्देशिका प्रविष्टि है। नाम बदलना निर्देशिका प्रविष्टि पर एक ऑपरेशन है, जो इस तथ्य से प्रभावित नहीं है कि फ़ाइल निष्पादन के लिए बंद है।
dwShareMode
शून्य पर सेट करना OF_SHARE_COMPAT
या OF_SHARE_EXCLUSIVE
झंडे का उपयोग करना ।
यह निष्पादन योग्य फ़ाइल और DLL को हटाने की अनुमति नहीं देता है क्योंकि विंडोज़ निष्पादन योग्य फ़ाइलों के कुछ हिस्सों को प्रक्रिया निर्माण के हिस्से के रूप में मेमोरी में मैप करता है, इसलिए इसे प्रक्रिया के जीवनकाल के दौरान फ़ाइल की आवश्यकता होती है।
दुर्भाग्य से मेरे पास कोई सही कारण नहीं है कि यह अभी भी ऐसी फ़ाइलों का नाम बदलने की अनुमति देता है। मुझे लगता है कि यह dlls और exe फ़ाइलों के अद्यतन को सक्षम करने के लिए किया गया है, जबकि वे सेवा रुकावट के समय को कम करने के लिए चल रहे हैं।
इसके विपरीत लिनक्स (सामान्य रूप से यूनिक्स) एक निष्पादन योग्य फ़ाइल को हटाने की अनुमति देता है जब वह चल रहा हो:
tmp]$ cp /usr/bin/md5sum .;ll md5*; \
(./md5sum /home/pub/iso/FC5/FC-5-i386-DVD.iso & ); \
rm md5sum ; ll md5*;ps -f
-rwxr-xr-x 1 sergey sergey 37276 Oct 16 02:38 md5sum
ls: cannot access md5*: No such file or directory
UID PID PPID C STIME TTY TIME CMD
sergey 2423 2422 0 02:32 pts/1 00:00:00 -bash
sergey 2533 1 0 02:38 pts/1 00:00:00 ./md5sum /home/pub/iso/FC5/FC-5-
sergey 2536 2423 0 02:38 pts/1 00:00:00 ps -f