2010-05-22 22 views
9

कृपया मुझे बताएं कि उपयोगकर्ता के नाम या मैक मशीन नाम (यदि संभव हो) में वर्तमान में लॉग इन कैसे करें उद्देश्य-सी में। धन्यवादमैकॉक्स कैसे प्राप्त करें लॉग-इन उपयोगकर्ता नाम उद्देश्य-सी

उत्तर

31

है NSUserName()

+8

कभी-कभी वे लगभग बहुत आसान बनाते हैं और फिर आप मूर्ख महसूस करते हैं। – TechZen

+1

मुझे लगता है कि हर किसी को डेविड को इस तरह के एक पूर्ण और स्पष्ट रूप से अच्छी तरह से शोध किए गए उत्तर के लिए एक बिंदु देना चाहिए। – bbum

+1

और भूलें [** NSFullUserName() **] (https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Functions/Reference/reference.html#// apple_ref/c/func/NSFullUserName) :-) – Jay

5

सी समारोह: getpwuid() जो struct पासवर्ड वापसी:

 struct passwd { 
      char *pw_name;  /* username */ 
      char *pw_passwd;  /* user password */ 
      uid_t pw_uid;  /* user ID */ 
      gid_t pw_gid;  /* group ID */ 
      char *pw_gecos;  /* user information */ 
      char *pw_dir;  /* home directory */ 
      char *pw_shell;  /* shell program */ 
     }; 

-------------------- --Code ----------------

#include <pwd.h> 
register uid_t uid; 
struct passwd *uid_pw; 
uid = geteuid(); 
uid_pw = getpwuid (uid); 
strcpy(uname,uid_pw->pw_name) 

// इसी तरह अन्य जानकारी

+0

फ्रेमवर्क में उच्च स्तरीय फ़ंक्शंस होने पर क्या बात है - यह आपको सही, ओएस एक्स स्तर का उत्तर देने की गारंटी है और अंतर्निहित यूनिक्स सिस्टम के संभावित रूप से यादृच्छिक कचरे का जवाब नहीं है। ।?! – Jay

+0

मेरा मतलब है कि निम्न स्तर की भाषा के लिए विधि है, इसलिए यदि कोई उद्देश्य सी फ़ंक्शन का उपयोग नहीं करना चाहता है तो वे इसके लिए जा सकते हैं। हाँ, दोनों एक जैसे हैं और दोनों सही परिणाम की गारंटी देते हैं। –

+1

@Jay getpwuid() कचरा वापस कब मिलेगा? यह सिर्फ OpenDirectory कॉल करता है। – David

0

आप NSUserName() उपयोग कर सकते हैं। यह वर्तमान लॉग इन उपयोगकर्ता का नाम वापस कर देगा।

NSString *userName = NSUserName(); 
संबंधित मुद्दे