Please i am looking forward to learn how to print the current logged-in user and system name in Unix.
#include <unistd.h>
#include <fcntl.h>
using namespace std;
int main(int argc, char **argv)
{
//Print the current logged-in user / username.
//Print the name of the system / computer name.
return 0;
}
I would be grateful if you can provide a line of code or two as demonstration. Thanks
getuid()
gets the id not the username. To get the username you'll have to additionally use getpwuid()
:
struct passwd *passwd;
passwd = getpwuid ( getuid());
printf("The Login Name is %s ", passwd->pw_name);
See it
And for getting the hostname you can use the gethostname()
function.
User --> getuid()
(see also geteuid()
).
Machine name --> gethostname()
.
That is pure C. I don't know whether C++ has other library calls for that.
You need to call the uname, gethostname, getuid (and perhaps getgid) system calls, and to convert the numerical uid with getpwent function.