diff options
Diffstat (limited to 'man3p/strcmp.3p')
-rw-r--r-- | man3p/strcmp.3p | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/man3p/strcmp.3p b/man3p/strcmp.3p new file mode 100644 index 000000000..0f082174c --- /dev/null +++ b/man3p/strcmp.3p @@ -0,0 +1,100 @@ +.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved +.TH "STRCMP" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual" +.\" strcmp +.SH NAME +strcmp \- compare two strings +.SH SYNOPSIS +.LP +\fB#include <string.h> +.br +.sp +int strcmp(const char *\fP\fIs1\fP\fB, const char *\fP\fIs2\fP\fB); +.br +\fP +.SH DESCRIPTION +.LP +The \fIstrcmp\fP() function shall compare the string pointed to by +\fIs1\fP to the string pointed to by \fIs2\fP. +.LP +The sign of a non-zero return value shall be determined by the sign +of the difference between the values of the first pair of +bytes (both interpreted as type \fBunsigned char\fP) that differ in +the strings being compared. +.SH RETURN VALUE +.LP +Upon completion, \fIstrcmp\fP() shall return an integer greater than, +equal to, or less than 0, if the string pointed to by +\fIs1\fP is greater than, equal to, or less than the string pointed +to by \fIs2\fP, respectively. +.SH ERRORS +.LP +No errors are defined. +.LP +\fIThe following sections are informative.\fP +.SH EXAMPLES +.SS Checking a Password Entry +.LP +The following example compares the information read from standard +input to the value of the name of the user entry. If the +\fIstrcmp\fP() function returns 0 (indicating a match), a further +check will be made to see if the user entered the proper old +password. The \fIcrypt\fP() function shall encrypt the old password +entered by the user, +using the value of the encrypted password in the \fBpasswd\fP structure +as the salt. If this value matches the value of the +encrypted \fBpasswd\fP in the structure, the entered password \fIoldpasswd\fP +is the correct user's password. Finally, the +program encrypts the new password so that it can store the information +in the \fBpasswd\fP structure. +.sp +.RS +.nf + +\fB#include <string.h> +#include <unistd.h> +#include <stdio.h> +\&... +int valid_change; +struct passwd *p; +char user[100]; +char oldpasswd[100]; +char newpasswd[100]; +char savepasswd[100]; +\&... +if (strcmp(p->pw_name, user) == 0) { + if (strcmp(p->pw_passwd, crypt(oldpasswd, p->pw_passwd)) == 0) { + strcpy(savepasswd, crypt(newpasswd, user)); + p->pw_passwd = savepasswd; + valid_change = 1; + } + else { + fprintf(stderr, "Old password is not valid\\n"); + } +} +\&... +\fP +.fi +.RE +.SH APPLICATION USAGE +.LP +None. +.SH RATIONALE +.LP +None. +.SH FUTURE DIRECTIONS +.LP +None. +.SH SEE ALSO +.LP +\fIstrncmp\fP() , the Base Definitions volume of IEEE\ Std\ 1003.1-2001, +\fI<string.h>\fP +.SH COPYRIGHT +Portions of this text are reprinted and reproduced in electronic form +from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology +-- Portable Operating System Interface (POSIX), The Open Group Base +Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of +Electrical and Electronics Engineers, Inc and The Open Group. In the +event of any discrepancy between this version and the original IEEE and +The Open Group Standard, the original IEEE and The Open Group Standard +is the referee document. The original Standard can be obtained online at +http://www.opengroup.org/unix/online.html . |