#include <lcstring.h> int memcmpp (const void *arg1, const void *arg2, size_t size1, size_t size2, int pad);
memcmpp
compares two arrays (arg1
and arg2
), each of which
has an associated size (size1
and size2
). The shorter array
is treated as if it has the same size as the larger, and all additional
bytes have the value specified by pad
.
memcmpp
returns 0 if the two strings are equal, an integer less
than 0 if the first string is less than the second, or an integer
greater than 0 if the first string is greater than the second.
memcmpp
unless memcmpp
is undefined (by an #undef
statement) to prevent this. The
inline code may still call a library routine in special cases (for example, if
the length is a variable whose value is larger than 16 megabytes).
Usually, the code generated by memcmpp
uses the CLCL instruction to
perform the comparison. If more than 16 megabytes of data are to be compared, the
library routine is called, which processes 16M-1 bytes at a time.
#include <lcstring.h> #include <stdlib.h> #include <stdio.h> #define MAXLEN 100 main() { char line[MAXLEN]; char *cmdname; int cmdlen; command: puts("enter command:"); cmdname = gets(line); cmdlen = strlen(cmdname); /* If the value in cmdname is "exit", possibly */ /* followed by trailing blanks, terminate execution. */ if (memcmpp(cmdname, "exit", cmdlen, 4, ' ') == 0){ puts("You have asked to exit program; exiting ..."); exit(0); } else{ puts("Command not understood ... try again."); goto command; } }
memcmp
Copyright (c) 1998 SAS Institute Inc. Cary, NC, USA. All rights reserved.