1 #include <unistd.h>
2 #include <sys/types.h>
3 #include <pwd.h>
4 #include "strerr.h"
5 #include "fmt.h"
6 #include "buffer.h"
7 #include "exit.h"
8
9 #define FATAL "getgid: fatal: "
10
11 static char strnum[FMT_ULONG];
12
13 const char *account;
14 struct passwd *pw;
15
main(int argc,const char * const * argv)16 int main(int argc,const char *const *argv) {
17 account = *++argv;
18 if (account) {
19 pw = getpwnam(account);
20 if (!pw)
21 strerr_die3x(111,FATAL,"unknown account ",account);
22
23 strnum[fmt_ulong(strnum,pw->pw_uid)] = 0;
24 }
25 else {
26 strnum[fmt_ulong(strnum,getgid())] = 0;
27 }
28 if (buffer_puts(buffer_1,strnum) == -1)
29 strerr_die2sys(111,FATAL,"cannot write uid: ");
30 if (buffer_putflush(buffer_1,"\n",1) == -1)
31 strerr_die2sys(111,FATAL,"cannot write uid: ");
32 _exit(0);
33 }
34