Mac OS X: Get current username and home directory for current user from Directory Services

George picture George · Nov 24, 2010 · Viewed 8.4k times · Source

My app is written in Objective-C. How can I get the user name and home directory of the currently logged in user through directory services?

Detail: My Cocoa app gets the current username and home directory with getenv("USER"), getenv("HOME"). Apparently this doesn't work right if the user is logged in through directory services. I am doing a chdir($HOME) and then running this command: login -fp $USER and it rejects it because, I think, login goes through the directory service to authenticate the user, and his username in that system may not be the same as the value of $USER. Likewise, he may have a home directory specified in directory services that is different than $HOME.

Answer

Nicholas Riley picture Nicholas Riley · Nov 24, 2010

Try NSUserName() and NSHomeDirectory().