Search code examples
c++clinuxposix

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


How can I get the actual "username" without using the environment (getenv, ...) in a program? Environment is C/C++ with Linux.


Solution

  • 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++.