का उपयोग कर मैक ओएस पर एक प्रक्रिया कैसे बनाएं I अपेक्षाकृत सरल, स्वतंत्र "प्रक्रिया स्टार्टर" पर काम कर रहा हूं कि मैं विंडोज (XP, Vista, 7) पर काम करना चाहता हूं), लिनक्स (उबंटू 10.10) और विशेष रूप से मैक ओएस एक्स (10.6)। लिनक्स और विंडोज मूल रूप से काम करते हैं, लेकिन मुझे मैक संस्करण के साथ कुछ परेशानी हो रही है। मैं उम्मीद कर रहा था कि fork()
और exec()
फ़ंक्शन मैक ओएस के तहत काम करेंगे क्योंकि वे लिनक्स में काम करते हैं। तो मेरा पहला सवाल यह है:फोर्क() और exec()
- मैं इन का उपयोग करना चाहिए मैक पर एक प्रक्रिया बनाने के लिए या किसी भी मंच विशिष्ट कार्यों हैं इस्तेमाल किया जा करने के लिए?
मेरे वर्तमान कोड (जो ठीक लिनक्स के तहत काम किया) यह कुछ इस तरह दिखता डिबग करने के लिए:
pid_t processId = 0;
if (processId = fork()) == 0)
{
const char * tmpApplication = "/Path/to/TestApplication";
int argc = 1;
char * argv[argc + 1];
argv[0] = tmpApplication;
argv[1] = NULL;
execv(tmpApplication, argv);
}else
{
//[...]
}
किसी भी विचार करता है, तो इस वजह से मेरे बच्चे प्रक्रिया है, साथ ही मैक ओएस एक्स के तहत काम कर सकता था बस लॉन्च नहीं किया जा रहा है, जबकि कोई त्रुटि नहीं होगी।
धन्यवाद!
बहुत बहुत धन्यवाद Arkku – Chris
ठीक है - मुझे लगता है कि मुझे पता है कि मेरी समस्या अब क्या है, मैंने वास्तव में मूल प्रक्रिया में स्मृति तक पहुंचने की कोशिश की (देखने के लिए वास्तविक बाल प्रक्रिया का नाम), जो दुर्भाग्य से विफल रहता है - कोई सुझाव है कि मैं यह कैसे करूं? अधिक स्पष्ट होने के लिए: 'execk() 'आदेश को पास करने के लिए' फोर्क() 'को कॉल करने के बाद मुझे मनमाने ढंग से एप्लिकेशन नाम तक पहुंचने की आवश्यकता है। – Chris
@ क्रिस आपको शायद उस समस्या के बारे में एक नया प्रश्न बनाना चाहिए और इसे कोड नमूना के साथ चित्रित करना चाहिए। मैं, एक के लिए, मुझे यकीन नहीं है कि मैं समझ गया कि आप क्या कर रहे हैं। – Arkku