Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C . में सेल्फ डिस्ट्रक्टिंग कोड

यहां हम देखेंगे कि सी में सेल्फ-डिस्ट्रक्टिंग कोड कैसे बनाया जाता है। सेल्फ-डिस्ट्रक्टिंग कोड मूल रूप से कोड को निष्पादित कर रहा है, और फिर इसे निष्पादित करने के बाद निष्पादन योग्य फ़ाइल को हटा दें।

यह कार्य बहुत सरल है। हमें इसे हटाने के लिए निष्पादन योग्य फ़ाइल नाम प्राप्त करने की आवश्यकता है। हम कमांड लाइन तर्कों का उपयोग कर सकते हैं। 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

  1. MacOS पर 'त्रुटि कोड - 8076' को कैसे ठीक करें

    कई macOS उपयोगकर्ता त्रुटि कोड -8076 . का सामना कर रहे हैं हर बार जब वे फ़ाइलों / फ़ोल्डरों का नाम बदलने, कॉपी करने, स्थानांतरित करने या हटाने का प्रयास करते हैं तो त्रुटि होती है। अधिकृत अनुमति या दूषित डेटा नहीं होने के कारण बाहरी और सिस्टम ड्राइव दोनों के साथ ऐसा हो सकता है। कई मामलों के अलग-अलग

  1. फिक्स:DllUnregisterServer त्रुटि कोड 0x80040200 . के साथ विफल

    कुछ विंडोज़ उपयोगकर्ता DllUnregisterServer त्रुटि कोड 0x80040200′ के साथ विफल हो रहे हैं का सामना कर रहे हैं DLL फ़ाइल को पंजीकृत या अपंजीकृत करने का प्रयास करते समय या किसी ऐसे एप्लिकेशन को स्थापित करने का प्रयास करते समय जो स्वचालित रूप से DLL फ़ाइल को पंजीकृत करने का प्रयास करता है। यह समस्या विं

  1. फ़ाइलें कॉपी करते समय "त्रुटि कोड:0x80070052" कैसे ठीक करें?

    कुछ उपयोगकर्ता 0x80070052 का सामना कर रहे हैं (निर्देशिका या फ़ाइल नहीं बनाई जा सकती) फ्लैश ड्राइव या बाहरी एचडीडी जैसे हटाने योग्य मीडिया में फ़ाइलों की प्रतिलिपि बनाने का प्रयास करते समय। ज्यादातर मामलों में, समस्या फ़ोटो, वीडियो (विशेषकर 20 वर्णों से अधिक के नाम वाले) के साथ होने की सूचना दी जात