दिलचस्प पोस्ट
पायथन `यदि एक्स कोई नहीं है 'या` नहीं तो x नहीं है'? ऊपर के मूल्य के साथ किसी भी खाली कोशिकाओं को भरना अगर मैं एक टेम्पलेट में सिर्फ एक विधि का विशेषज्ञ करना चाहता हूं, तो मैं यह कैसे कर सकता हूं? घंटों से 'एक्स' मात्रा जोड़ें jQuery एनिमेशन – चिकना आकार संक्रमण संपूर्ण फ़ाइल को पढ़ने के बिना जावा / इमेजआईआई छवि आयाम मिल रहा है? सिम्युलेटर में ऐप चलाने में असमर्थ: चलने के दौरान एक त्रुटि आई थी (डोमेन = लॉन्चसर्वाइसेज़ एर्रेट, कोड = 0) SQL सर्वर 2008 में PIVOT का उपयोग करना एंड्रॉइड में TextView के फ़ॉन्ट को बदलने के लिए कैसे करें आखिरी कमांड की दीवार का समय बश प्रांप्ट में कैसे लगाया जा सकता है? सिंक्रनाइज़ SQL सर्वर 2008 डेटाबेस WCF और सिंक्रनाइज़ेशन फ्रेमवर्क का उपयोग करते हुए सीएलआई आवेदन में मैं कैसे "अवरोधन" Ctrl + C कर सकता हूं? क्या एक HTTPS क्वेरी स्ट्रिंग सुरक्षित है? सी ++ में शून्य सूचक क्या है? जावा संग्रह फ्रेमवर्क कार्यान्वयन के लिए बिग-ओ सारांश?

Linux, C, C ++ में सिस्टम आदेश जारी करना

मुझे पता है कि डॉस / विंडोज़ एप्लिकेशन में, आप सिस्टम आदेशों को लाइनों का उपयोग कर कोड से जारी कर सकते हैं जैसे:

system("pause"); 

या

 system("myProgram.exe"); 

… stdlib.h से क्या ऐसा कोई समान लिनक्स कमांड है, और यदि ऐसा है तो मुझे कौन सा हेडर फाइल मिलेगी?

इसके अलावा, क्या यह बुरा प्रोग्रामिंग अभ्यास माना जाता है? मैं lsmod कमांड का उपयोग करके lsmod मॉड्यूल की एक सूची प्राप्त करने की कोशिश करने पर विचार कर रहा हूं। क्या यह एक अच्छा विचार या बुरा विचार है? मुझे कुछ वेबसाइट मिली जो सिस्टम कॉल को देखने लगती थी (कम से कम प्रणाली ("विराम");) एक नकारात्मक प्रकाश में।

Solutions Collecting From Web of "Linux, C, C ++ में सिस्टम आदेश जारी करना"

आश्चर्य की बात नहीं, यह आदेश अभी भी है

 system("whatever"); 

और हेडर अभी भी stdlib.h । वह हैडर फ़ाइल का नाम "मानक पुस्तकालय" है, जिसका अर्थ है कि यह प्रत्येक मानक प्लेटफ़ॉर्म पर है जो सी का समर्थन करता है।

और हाँ, कॉलिंग system() अक्सर एक बुरा विचार है आमतौर पर काम करने के अधिक प्रोग्रामत्मक तरीके होते हैं

यदि आप देखना चाहते हैं कि lsmod कैसे काम करता है, तो आप हमेशा अपने स्रोत कोड को देख सकते हैं और देख सकते हैं कि प्रमुख सिस्टम कॉल क्या हैं जो यह बनाता है। फिर उन कॉलों का उपयोग करें जो स्वयं को कहते हैं

एक त्वरित Google खोज इस लिंक को lsmod है, जो इंगित करता है कि lsmod /proc/modules की सामग्री पढ़ रही है।

system कई कारणों से एक बुरा विचार है:

  • आदेश समाप्त होने तक आपके प्रोग्राम को निलंबित कर दिया गया है।
  • यह एक शेल के माध्यम से कमांड चलाता है, जिसका मतलब है कि आपको यह सुनिश्चित करने के बारे में चिंता करने की ज़रूरत है कि आप जिस स्ट्रिंग को पास करते हैं वह खोल के मूल्यांकन के लिए सुरक्षित है।
  • यदि आप & साथ एक पृष्ठभूमि वाले आदेश को चलाने का प्रयास करते हैं, तो वह पोते की प्रक्रिया को समाप्त कर लेती है और init प्रक्रिया (pid 1) द्वारा अनाथ हो जाती है और उसे ले जाती है, और उसके बाद उसकी स्थिति की जांच करने का कोई तरीका नहीं है।
  • कमांड का आउटपुट आपके प्रोग्राम में वापस पढ़ने का कोई तरीका नहीं है।

पहले और अंतिम मुद्दों के लिए, popen एक समाधान है, लेकिन यह अन्य मुद्दों को संबोधित नहीं करता है किसी भी बाह्य कमांड / प्रोग्राम को चलाने के लिए आपको वास्तव में fork और exec (या posix_spawn ) का उपयोग करना चाहिए।

ठीक है, lsmod इसे /proc/modules फ़ाइल को पार्स करके करता है। यह मेरा पसंदीदा तरीका होगा

मुझे लगता है कि आप क्या ढूंढ रहे हैं फोर्क और एप हैं