whoami.c revision f22acdfff536d452df49dd85c5ecd42092b8fcad
bee2440354b4bc8796e1de0b6cbd60e1f68deba0Phill Cunnington/*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Use is subject to license terms.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster/* All Rights Reserved */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster/*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * Copyright (c) 1980 Regents of the University of California.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * All rights reserved. The Berkeley software License Agreement
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * specifies the terms and conditions for redistribution.
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster#pragma ident "%Z%%M% %I% %E% SMI"
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster#include <unistd.h>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster#include <sys/types.h>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster#include <pwd.h>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster#include <locale.h>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster#include <stdlib.h>
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster#define MSG "whoami: no login associated with uid %u.\n"
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster/*
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster * whoami
f48118365a7f4f1240516dbe66e47b24a896ff16Craig McDonnell */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fosterint
8af80418ba1ec431c8027fa9668e5678658d3611Allan Fostermain(int argc, char *argv[])
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster/*ARGSUSED*/
ce4d3fddc8fe2eddd68a20af9570b3cc63ece5abNeil Madden{
ce4d3fddc8fe2eddd68a20af9570b3cc63ece5abNeil Madden struct passwd *pp;
ce4d3fddc8fe2eddd68a20af9570b3cc63ece5abNeil Madden uid_t euid;
ce4d3fddc8fe2eddd68a20af9570b3cc63ece5abNeil Madden
ce4d3fddc8fe2eddd68a20af9570b3cc63ece5abNeil Madden /* Set locale environment variables local definitions */
ce4d3fddc8fe2eddd68a20af9570b3cc63ece5abNeil Madden (void) setlocale(LC_ALL, "");
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster#if !defined(TEXT_DOMAIN) /* Should be defined by cc -D */
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster#define TEXT_DOMAIN "SYS_TEST" /* Use this only if it wasn't */
f48118365a7f4f1240516dbe66e47b24a896ff16Craig McDonnell#endif
ce4d3fddc8fe2eddd68a20af9570b3cc63ece5abNeil Madden (void) textdomain(TEXT_DOMAIN);
ce4d3fddc8fe2eddd68a20af9570b3cc63ece5abNeil Madden
ce4d3fddc8fe2eddd68a20af9570b3cc63ece5abNeil Madden euid = geteuid();
ce4d3fddc8fe2eddd68a20af9570b3cc63ece5abNeil Madden pp = getpwuid(euid);
ce4d3fddc8fe2eddd68a20af9570b3cc63ece5abNeil Madden if (pp == 0) {
ce4d3fddc8fe2eddd68a20af9570b3cc63ece5abNeil Madden (void) printf(gettext(MSG), euid);
ce4d3fddc8fe2eddd68a20af9570b3cc63ece5abNeil Madden exit(1);
ce4d3fddc8fe2eddd68a20af9570b3cc63ece5abNeil Madden }
ce4d3fddc8fe2eddd68a20af9570b3cc63ece5abNeil Madden (void) printf("%s\n", pp->pw_name);
ce4d3fddc8fe2eddd68a20af9570b3cc63ece5abNeil Madden return (0);
ce4d3fddc8fe2eddd68a20af9570b3cc63ece5abNeil Madden}
8af80418ba1ec431c8027fa9668e5678658d3611Allan Foster