Linux: gcc version 2.95.3
Linux 2.4.14 #2 SMP Wed Nov 21 14:43:43 EST 2001 i686
I have the following trivial program:
void revealAll(struct passwd *);
int main(int argc, char **argv) {
char *login;
struct passwd *nameinfo;
if ((login = getlogin()) == NULL) {
perror("Getlogin()"
;
}
nameinfo = getpwnam(argv[1]);
revealAll(nameinfo);
return 0;
}
void revealAll(struct passwd *passptr) {
if (passptr == NULL) {
printf("Error, no info derived from getpwnam()\n"
;
exit(1);
}
printf("name: %s\n passwd: %s\n uid: %d\n
gid: %d\n realname: %s\n homedir: %s\n, shell: %s\n",
passptr->pw_name,passptr->pw_passwd,passptr->pw_uid,
passptr->pw_gid,passptr->pw_gecos,passptr->pw_dir,passptr->pw_shell);
}
The getlogin() call always fails..any ideas?
For example:
for xx in $(awk -F":" ' $1 ~ /m.*/ {print $1}' /etc/passwd); do progname $xx; done
Will return:
Getlogin(): No such file or directory
name: amanda
passwd: x
uid: 37
gid: 6
realname: Amanda Admin
homedir: /var/lib/amanda
shell: /bin/bash
Linux 2.4.14 #2 SMP Wed Nov 21 14:43:43 EST 2001 i686
I have the following trivial program:
void revealAll(struct passwd *);
int main(int argc, char **argv) {
char *login;
struct passwd *nameinfo;
if ((login = getlogin()) == NULL) {
perror("Getlogin()"
}
nameinfo = getpwnam(argv[1]);
revealAll(nameinfo);
return 0;
}
void revealAll(struct passwd *passptr) {
if (passptr == NULL) {
printf("Error, no info derived from getpwnam()\n"
exit(1);
}
printf("name: %s\n passwd: %s\n uid: %d\n
gid: %d\n realname: %s\n homedir: %s\n, shell: %s\n",
passptr->pw_name,passptr->pw_passwd,passptr->pw_uid,
passptr->pw_gid,passptr->pw_gecos,passptr->pw_dir,passptr->pw_shell);
}
The getlogin() call always fails..any ideas?
For example:
for xx in $(awk -F":" ' $1 ~ /m.*/ {print $1}' /etc/passwd); do progname $xx; done
Will return:
Getlogin(): No such file or directory
name: amanda
passwd: x
uid: 37
gid: 6
realname: Amanda Admin
homedir: /var/lib/amanda
shell: /bin/bash