2009-08-29 12 views
7

क्या मैक ओएस एक्स 10.5 और बाद में किस आर्किटेक्चर की दूसरी प्रक्रिया चल रही है, यह जानने के लिए कोई प्रोग्रामेटिक तरीका है?एक प्रक्रिया के आर्किटेक्चर का निर्धारण

प्रक्रिया की छवि फ़ाइल की जांच करना कोई समाधान नहीं है, क्योंकि छवि में एकाधिक आर्किटेक्चर, और आर्क (1) और "ओपन इन रोसेटा" और "32-बिट मोड में खोलें" चेकबॉक्स के बीच होने की संभावना है, वहां कोई नहीं है अकेले छवि से बताने का तरीका जो आर्किटेक्चर वास्तव में चल रहा है।

+1

निश्चित रूप से होना चाहिए ... गतिविधि मॉनीटर ठीक वही करता है। –

उत्तर

6

क्या आप ओएसई पर NSRunning अनुप्रयोग का उपयोग कर सकते हैं, जहां यह उपलब्ध है, और जब यह नहीं है तो sysctl सामान पर वापस आ सकता है? मुझे नहीं लगता कि sysctl सामान सहायक एपीआई है जिस तरह से अधिकांश चीजें हैं, लेकिन अगर आप इसे पुराने ओएस पर इस्तेमाल कर रहे हैं तो आपको ठीक होना चाहिए। 64-बिट के लिए जाँच करने

cpu_type_t cpuType 
    size_t  cpuTypeSize; 
    int   mib[CTL_MAXNAME]; 
    size_t  mibLen; 
     mibLen = CTL_MAXNAME; 
    err = sysctlnametomib("sysctl.proc_cputype", mib, &mibLen); 
    if (err == -1) { 
     err = errno; 
    } 
    if (err == 0) { 
     assert(mibLen < CTL_MAXNAME); 
     mib[mibLen] = pid; 
     mibLen += 1; 

     cpuTypeSize = sizeof(cpuType); 
     err = sysctl(mib, mibLen, &cpuType, &cpuTypeSize, 0, 0); 
     if (err == -1) { 
      err = errno; 
     } 
    } 

और परीक्षण CPU_ARCH_ABI64:

प्रक्रिया के सीपीयू प्रकार प्राप्त करने के लिए इस की कोशिश करो।

+0

'sysctl' समर्थित एपीआई है। यह आशाजनक लग रहा है; मैं आपको यह बताने दूंगा कि एक बार मुझे इसे आजमाने का मौका मिलने के बाद (इस समय और अधिक दबाने वाली चीज़ों में व्यस्त) कैसे हो जाता है। –

+1

'sysctl' फ़ंक्शन कहीं भी नहीं जा रहा है। मैन पेज में सामान कहीं भी नहीं जा रहा है। लेकिन यदि आप 'sysctl -a' करते हैं, तो आप इसमें शामिल अन्य सामानों का एक पूरा समूह देखते हैं। ये जरूरी नहीं हैं। – Ken

+0

बस मुझे क्या चाहिए। धन्यवाद! –

2

आप यह नहीं कहते कि आपकी आवश्यकताएं क्या हैं, लेकिन 10.6 में पेश की गई NSRunningApplication कक्षा इस के लिए वास्तव में आसान इंटरफ़ेस प्रदान करती है। दस्तावेज़ वर्तमान में थोड़ा दूर हैं, लेकिन यह वहां है।

+0

अच्छा लग रहा है। दुर्भाग्य से, मैं तेंदुए को लक्षित कर रहा हूं। मैंने इसे शामिल करने के लिए अपना प्रश्न संपादित कर लिया है। –

संबंधित मुद्दे