diff options
Diffstat (limited to 'upstream/archlinux/man3p/strcmp.3p')
-rw-r--r-- | upstream/archlinux/man3p/strcmp.3p | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/upstream/archlinux/man3p/strcmp.3p b/upstream/archlinux/man3p/strcmp.3p new file mode 100644 index 00000000..d801d722 --- /dev/null +++ b/upstream/archlinux/man3p/strcmp.3p @@ -0,0 +1,127 @@ +'\" et +.TH STRCMP "3P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual" +.\" +.SH PROLOG +This manual page is part of the POSIX Programmer's Manual. +The Linux implementation of this interface may differ (consult +the corresponding Linux manual page for details of Linux behavior), +or the interface may not be implemented on Linux. +.\" +.SH NAME +strcmp +\(em compare two strings +.SH SYNOPSIS +.LP +.nf +#include <string.h> +.P +int strcmp(const char *\fIs1\fP, const char *\fIs2\fP); +.fi +.SH DESCRIPTION +The functionality described on this reference page is aligned with the +ISO\ C standard. Any conflict between the requirements described here and the +ISO\ C standard is unintentional. This volume of POSIX.1\(hy2017 defers to the ISO\ C standard. +.P +The +\fIstrcmp\fR() +function shall compare the string pointed to by +.IR s1 +to the string pointed to by +.IR s2 . +.P +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 +.BR "unsigned char" ) +that differ in the strings being compared. +.SH "RETURN VALUE" +Upon completion, +\fIstrcmp\fR() +shall return an integer greater than, equal to, or less than 0, if the +string pointed to by +.IR s1 +is greater than, equal to, or less than the string pointed to by +.IR s2 , +respectively. +.SH ERRORS +No errors are defined. +.LP +.IR "The following sections are informative." +.SH EXAMPLES +.SS "Checking a Password Entry" +.P +The following example compares the information read from standard input +to the value of the name of the user entry. If the +\fIstrcmp\fR() +function returns 0 (indicating a match), a further check will be made +to see if the user entered the proper old password. The +\fIcrypt\fR() +function shall encrypt the old password entered by the user, using +the value of the encrypted password in the +.BR passwd +structure as the salt. If this value matches the value of the encrypted +.BR passwd +in the structure, the entered password +.IR oldpasswd +is the correct user's password. Finally, the program encrypts the new +password so that it can store the information in the +.BR passwd +structure. +.sp +.RS 4 +.nf + +#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\en"); + } +} +\&... +.fi +.P +.RE +.SH "APPLICATION USAGE" +None. +.SH RATIONALE +None. +.SH "FUTURE DIRECTIONS" +None. +.SH "SEE ALSO" +.IR "\fIstrncmp\fR\^(\|)" +.P +The Base Definitions volume of POSIX.1\(hy2017, +.IR "\fB<string.h>\fP" +.\" +.SH COPYRIGHT +Portions of this text are reprinted and reproduced in electronic form +from IEEE Std 1003.1-2017, Standard for Information Technology +-- Portable Operating System Interface (POSIX), The Open Group Base +Specifications Issue 7, 2018 Edition, +Copyright (C) 2018 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 . +.PP +Any typographical or formatting errors that appear +in this page are most likely +to have been introduced during the conversion of the source files to +man page format. To report such errors, see +https://www.kernel.org/doc/man-pages/reporting_bugs.html . |