![]() |
![]() |
![]() |
Get an entry from the password database
#include <sys/types.h> #include <shadow.h> struct spwd* fgetspent( FILE* f );
libc
The fgetspent() works like the getspent() function but it assumes that it's reading from a file formatted like a shadow password database file. This function uses a static buffer that's overwritten by each call.
![]() |
The fgetspent(), getspent(), and getspnam() functions share the same static buffer. |
A pointer to an object of type struct spwd containing the next entry from the password database.
The fgetspent() function uses the following functions, and as a result errno can be set to a valid error for any of these calls:
#include <stdio.h> #include <stdlib.h> #include <pwd.h> #include <shadow.h> /* * This program loops, reading a entries from a file * (which is formatted in the shadow password way) * reading the next shadow password entry. * For example this_file /etc/shadow */ int main( int argc, char** argv ) { FILE* fp; struct spwd* sp; if (argc < 2) { printf("%s filename \n", argv[0]); return(EXIT_FAILURE); } if (!(fp = fopen(argv[1], "r"))) { fprintf(stderr, "Can't open file %s \n", argv[1]); return(EXIT_FAILURE); } while( (sp = fgetspent(fp)) != (struct spwd *) 0 ) { printf( "Username: %s\n", sp->sp_namp ); printf( "Password: %s\n", sp->sp_pwdp ); } fclose(fp); return( EXIT_SUCCESS ); }
Safety: | |
---|---|
Cancellation point | Yes |
Interrupt handler | No |
Signal handler | No |
Thread | No |
errno, getgrent(), getlogin(), getpwnam(), getpwuid(), getspent(), getspnam()
![]() |
![]() |
![]() |