How can I know if I am running in a 64bits or a 32bits linux from within a perl script? -


संभव डुप्लिकेट:

मैं सीधे खोल (उदाहरण के लिए uname का उपयोग करने के लिए) का उपयोग नहीं करना चाहता हूँ मैं आर्किटेक्चर का पता लगाने के लिए एक फास्ट फॉरवर्ड मार्ग (केवल अगर यह 32 या 64 बिट है) की तलाश कर रहा हूं, एक बार मुझे पता है कि मैं लिनक्स पर हूं।

आप पूछ सकते हैं कि 3 अलग-अलग प्रश्न हैं:

सभी के लिए ध्यान दें कि कोई भी जादू" 64-बिट "नहीं है, वहां बहुत सारी चीज़ें हैं जो मतलब।

  1. हार्डवेयर क्या है? - / proc / cpuinfo में इस जानकारी को पार्स करने के लिए कड़ी मेहनत है। आप मूल रूप से विभिन्न CPUs क्या है की एक टेबल की जरूरत है मेरा मानना ​​है कि आपको "पता आकारों" में 32 से अधिक संख्याएं मिलेंगी यदि यद्यपि कर्नेल 64-बिट है, तो।
  2. ओएस / कर्नेल क्या है? - मेरा मानना ​​है कि POSIX का उपयोग करें; और का निरीक्षण करना (POSIX :: uname ()) [4] कातीय जवाब है, लेकिन -d / lib64 , -d / usr / lib64 सच्चा भी एक अच्छा संकेतक है।
  3. क्या यह एक 64-बिट पर्ल है? - config का उपयोग करें और $ config {archname} , $ config {myarchname} , $ config {use64bitint} < / Code>, या कॉन्फ़िग में कुछ अन्य वेरिएबल जो आपको "64 बिट" का मानना ​​है, से मेल खाता है।

Comments