#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
#include <sys/utsname.h>
#include <errno.h>

int main (void)
{
	struct passwd * myPasswd;
	struct utsname myUname;
	char * getloginRet;

	errno = (int)NULL;
	myPasswd = getpwuid(getuid());
	if (! myPasswd)
	{
		perror("Blad getpwuid()");
		return(1);
	}

	errno = (int)NULL;
	if (uname(&myUname) != 0)
	{
		perror("Blad uname()");
		return(1);
	}

	errno = (int)NULL;
	getloginRet = getlogin();
	if (!getloginRet)
	{
		perror("Blad getlogin()");
		return(1);
	}

	printf("getlogin():\t%s\n", getloginRet);
	printf("getuid():\t%i\n", getuid());
	printf("getpwuid(): gecos:\t%s\n", myPasswd->pw_gecos);
	printf("uname(): sysname[]:\t%s\n", myUname.sysname);
	printf("uname(): nodename[]:\t%s\n", myUname.nodename);
	printf("uname(): release[]:\t%s\n", myUname.release);
	printf("uname(): version[]:\t%s\n", myUname.version);
	printf("uname(): machine[]:\t%s\n", myUname.machine);
	#ifdef _GNU_SOURCE
		printf("uname(): domainname[]:\t%s\n", myUname.domainname);
	#endif
	return(0);
}
