यहां हम देखेंगे कि सी में सेल्फ-डिस्ट्रक्टिंग कोड कैसे बनाया जाता है। सेल्फ-डिस्ट्रक्टिंग कोड मूल रूप से कोड को निष्पादित कर रहा है, और फिर इसे निष्पादित करने के बाद निष्पादन योग्य फ़ाइल को हटा दें।
यह कार्य बहुत सरल है। हमें इसे हटाने के लिए निष्पादन योग्य फ़ाइल नाम प्राप्त करने की आवश्यकता है। हम कमांड लाइन तर्कों का उपयोग कर सकते हैं। argv[0] निष्पादन योग्य फ़ाइल नाम रखेगा। फिर निकालें () फ़ंक्शन का उपयोग करके हम इसे हटा सकते हैं।
प्रोग्राम में हम देख सकते हैं कि उस फाइल को हटाने के बाद एक लाइन प्रिंट हो रही है। तो अब प्रश्न आता है कि अगली पंक्ति कैसे क्रियान्वित हो रही है जबकि वर्तमान फ़ाइल मौजूद नहीं है?
असल में पूरे रूपांतरित कोड को निष्पादित करने से पहले प्राथमिक मेमोरी में कॉपी किया जाता है। निष्पादन फ़ाइल सामग्री की प्रतिलिपि बनाई गई है; इसका उपयोग स्वयं नहीं किया जाता है। तो प्राइमरी मेमोरी से अगली लाइन प्रिंट होगी।
उदाहरण
#include<stdio.h> int main(int c, char *argv[]) { printf("After completing this, the file will be removed\n"); remove(argv[0]); //remove the argv[0] this is the name of the executable printf("Removed\n"); return 0; }
आउटपुट
After completing this, the file will be removed Removed