How to get the username in C/C++ in Linux?

Zat42 picture Zat42 · Jan 21, 2012 · Viewed 85.3k times · Source

How can I get the actual "username" without using the environment (getenv, ...) in a program?

Answer

drrlvn picture drrlvn · Jan 21, 2012

The function getlogin_r() defined in unistd.h returns the username. See man getlogin_r for more information.

Its signature is:

int getlogin_r(char *buf, size_t bufsize);

Needless to say, this function can just as easily be called in C or C++.