objective c हरण कोको/उद्देश्य-सी शैल कमांड लाइन निष्पादन




रूपांतरित चट्टान कौन है (3)

यह शायद एक बेवकूफ सवाल है, लेकिन मैं अपने कोको ऐप से शेल कमांड को कैसे निष्पादित कर सकता हूं?

मेरे पास "कमांड" स्ट्रिंग के रूप में कमांड है, लेकिन आवश्यकतानुसार डेटा को आसानी से हेरफेर कर सकता है।

एक आउटपुट मूल्य प्राप्त करने की कोई आवश्यकता नहीं है


NSTask

एनएसटीस्क क्लास का उपयोग करना, आपका प्रोग्राम एक अन्य प्रोग्राम को एक उपप्रोसेस के रूप में चला सकता है और उस प्रोग्राम के निष्पादन को मॉनिटर कर सकता है।


यदि आप बस कुछ करना चाहते हैं और आउटपुट या वापसी कोड (उदाहरण के लिए, आप किसी फ़ाइल को छूना चाहते हैं) की परवाह नहीं करते हैं, तो आप ऐसा कर सकते हैं

system("touch myfile.txt");

उस के रूप में आसान


NSTask बहुत आसान है इस के साथ करने के लिए। एक तुल्यकालिक कॉल के लिए, आप इस खंड की तरह कुछ का उपयोग कर सकते हैं:

NSString *path = @"/path/to/executable";
NSArray *args = [NSArray arrayWithObjects:..., nil];
[[NSTask launchedTaskWithLaunchPath:path arguments:args] waitUntilExit];

-waitUntilExit कॉल सुनिश्चित करता है कि यह आगे बढ़ने से पहले खत्म हो जाता है यदि कार्य असिंक्रोनस हो सकता है, तो आप उस कॉल को निकाल सकते हैं और बस इसे एनएसटीस्क के जरिए कर सकते हैं।







command-line