getspnam(), getspnam_r()
QNX SDP8.0C Library ReferenceAPIDeveloper
Get information about a user with a given name
Synopsis:
#include <sys/types.h>
#include <shadow.h>
struct spwd* getspnam( char* name );
struct spwd* getspnam_r( const char* name,
struct spwd* result,
char* buffer,
size_t bufsize );
Arguments:
- name
- The name of the user.
- result
- (getspnam_r() only) A pointer to an spwd structure where the function can store the entry. For more information about this structure, see putspent().
- buffer
- (getspnam_r() only) A block of memory that the function can use to allocate storage referenced by the spwd structure. You can determine the maximum size needed for this buffer by calling sysconf() with an argument of _SC_GETPW_R_SIZE_MAX.
- bufsize
- (getspnam_r() only) The size of the block that buffer points to, in characters.
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The getspnam() and getspnam_r() functions allow a process to gain more knowledge about the user with the given name. The getspnam() function uses a static buffer that's overwritten by each call.
Note:
Returns:
A pointer to a struct spwd object containing an entry from the shadow file with a matching name, or NULL if an error occurred or the function couldn't find a matching entry.
Errors:
- ENOMEM
- There's insufficient memory to complete the request.
In addition to the errno settings listed above, a call to getspnam() can result in errno being set by any of the following functions:
Examples:
#include <stdio.h>
#include <stdlib.h>
#include <pwd.h>
#include <shadow.h>
/*
* Print information from the password entry
* for the user name given as argv[1].
*/
int main( int argc, char** argv )
{
struct spwd* sp;
if (argc < 2) {
printf("%s username \n", argv[0]);
return(EXIT_FAILURE);
}
if( ( sp = getspnam( argv[1] ) ) == (struct spwd*)0) {
fprintf( stderr, "getspnam: unknown %s\n", argv[1] );
return(EXIT_FAILURE);
}
printf( "login name %s\n", sp->sp_namp );
printf( "password %s\n", sp->sp_pwdp );
return(EXIT_SUCCESS);
}
Classification:
Safety: | |
---|---|
Cancellation point | Yes |
Signal handler | No |
Thread | No |
Safety: | |
---|---|
Cancellation point | Yes |
Signal handler | No |
Thread | Yes |
Page updated: