"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > C++ से एक्ज़ीक्यूटेबल्स कैसे लॉन्च करें: `सिस्टम()` का एक सुरक्षित विकल्प?

C++ से एक्ज़ीक्यूटेबल्स कैसे लॉन्च करें: `सिस्टम()` का एक सुरक्षित विकल्प?

2024-11-14 को प्रकाशित
ब्राउज़ करें:273

  How to Launch Executables from C  :  A Safer Alternative to `system()`?

C से निष्पादन योग्य लॉन्च करना: सिस्टम का एक विकल्प()

C में, किसी अन्य निष्पादन योग्य से एक निष्पादन योग्य लॉन्च करना सिस्टम का उपयोग करके प्राप्त किया जा सकता है () कार्य करता है, लेकिन यह विधि सुरक्षा और सिस्टम दक्षता संबंधी चिंताएँ उत्पन्न करती है। एक अधिक मजबूत दृष्टिकोण में CreateProcess() फ़ंक्शन का उपयोग करना शामिल है।

#include 

void startup(LPCTSTR lpApplicationName) {
   STARTUPINFO si;
   PROCESS_INFORMATION pi;

   ZeroMemory(&si, sizeof(si));
   si.cb = sizeof(si);
   ZeroMemory(&pi, sizeof(pi));

  CreateProcess(lpApplicationName, 
         argv[1], 
         NULL, 
         NULL, 
         FALSE, 
         0, 
         NULL, 
         NULL, 
         &si, 
         &pi
    );
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);
}

CreateProcess() का उपयोग करना:

  1. ऊपर दिखाए अनुसार स्टार्टअप() फ़ंक्शन को परिभाषित करें।
  2. में निष्पादन योग्य के लिए पथ निर्दिष्ट करें lpApplicationName.
  3. निष्पादन योग्य लॉन्च करने के लिए CreateProcess() को कॉल करें।
  4. संसाधन सफाई के लिए प्रक्रिया और थ्रेड हैंडल बंद करें।

त्रुटि समस्या निवारण:

सुनिश्चित करें कि निष्पादन योग्य के लिए निर्दिष्ट पथ सही है। प्रदान किए गए कोड में आई त्रुटि संभवतः "OpenFile.exe" के अमान्य पथ के कारण है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3