158f0484fSRodney W. Grimes.\" Copyright (c) 1990, 1991, 1993 258f0484fSRodney W. Grimes.\" The Regents of the University of California. All rights reserved. 358f0484fSRodney W. Grimes.\" 458f0484fSRodney W. Grimes.\" This code is derived from software contributed to Berkeley by 558f0484fSRodney W. Grimes.\" Chris Torek and the American National Standards Committee X3, 658f0484fSRodney W. Grimes.\" on Information Processing Systems. 758f0484fSRodney W. Grimes.\" 858f0484fSRodney W. Grimes.\" Redistribution and use in source and binary forms, with or without 958f0484fSRodney W. Grimes.\" modification, are permitted provided that the following conditions 1058f0484fSRodney W. Grimes.\" are met: 1158f0484fSRodney W. Grimes.\" 1. Redistributions of source code must retain the above copyright 1258f0484fSRodney W. Grimes.\" notice, this list of conditions and the following disclaimer. 1358f0484fSRodney W. Grimes.\" 2. Redistributions in binary form must reproduce the above copyright 1458f0484fSRodney W. Grimes.\" notice, this list of conditions and the following disclaimer in the 1558f0484fSRodney W. Grimes.\" documentation and/or other materials provided with the distribution. 163fb3b97cSEd Maste.\" 3. Neither the name of the University nor the names of its contributors 1758f0484fSRodney W. Grimes.\" may be used to endorse or promote products derived from this software 1858f0484fSRodney W. Grimes.\" without specific prior written permission. 1958f0484fSRodney W. Grimes.\" 2058f0484fSRodney W. Grimes.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 2158f0484fSRodney W. Grimes.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2258f0484fSRodney W. Grimes.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2358f0484fSRodney W. Grimes.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 2458f0484fSRodney W. Grimes.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2558f0484fSRodney W. Grimes.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2658f0484fSRodney W. Grimes.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2758f0484fSRodney W. Grimes.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2858f0484fSRodney W. Grimes.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2958f0484fSRodney W. Grimes.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 3058f0484fSRodney W. Grimes.\" SUCH DAMAGE. 3158f0484fSRodney W. Grimes.\" 32*5cc53d79SEd Maste.Dd November 20, 2024 3358f0484fSRodney W. Grimes.Dt MEMCMP 3 3458f0484fSRodney W. Grimes.Os 3558f0484fSRodney W. Grimes.Sh NAME 3658f0484fSRodney W. Grimes.Nm memcmp 37*5cc53d79SEd Maste.Nd compare bytes in memory 3825bb73e0SAlexey Zelkin.Sh LIBRARY 3925bb73e0SAlexey Zelkin.Lb libc 4058f0484fSRodney W. Grimes.Sh SYNOPSIS 4132eef9aeSRuslan Ermilov.In string.h 4258f0484fSRodney W. Grimes.Ft int 4358f0484fSRodney W. Grimes.Fn memcmp "const void *b1" "const void *b2" "size_t len" 4458f0484fSRodney W. Grimes.Sh DESCRIPTION 4558f0484fSRodney W. GrimesThe 4658f0484fSRodney W. Grimes.Fn memcmp 4758f0484fSRodney W. Grimesfunction 48*5cc53d79SEd Mastecompares byte object 4958f0484fSRodney W. Grimes.Fa b1 50*5cc53d79SEd Masteagainst byte object 5158f0484fSRodney W. Grimes.Fa b2 . 52*5cc53d79SEd MasteBoth objects are assumed to be 5358f0484fSRodney W. Grimes.Fa len 5458f0484fSRodney W. Grimesbytes long. 5558f0484fSRodney W. Grimes.Sh RETURN VALUES 5658f0484fSRodney W. GrimesThe 5758f0484fSRodney W. Grimes.Fn memcmp 58*5cc53d79SEd Mastefunction returns zero if the two objects are identical. 59*5cc53d79SEd MasteZero-length objects are considered identical. 60*5cc53d79SEd MasteThe 61*5cc53d79SEd Maste.Fn memcmp 62*5cc53d79SEd Mastefunction returns a negative value if the first differing byte has a lower 63*5cc53d79SEd Mastevalue in 64*5cc53d79SEd Maste.Fa b1 65*5cc53d79SEd Masteand a positive value if the first differing byte has a higher value in 66*5cc53d79SEd Maste.Fa b1 . 6758f0484fSRodney W. Grimes.Sh SEE ALSO 6858f0484fSRodney W. Grimes.Xr bcmp 3 , 6958f0484fSRodney W. Grimes.Xr strcasecmp 3 , 7058f0484fSRodney W. Grimes.Xr strcmp 3 , 7158f0484fSRodney W. Grimes.Xr strcoll 3 , 725174a6a2SEdward Tomasz Napierala.Xr strxfrm 3 , 73854023f0SXin LI.Xr timingsafe_memcmp 3 , 745174a6a2SEdward Tomasz Napierala.Xr wmemcmp 3 7558f0484fSRodney W. Grimes.Sh STANDARDS 7658f0484fSRodney W. GrimesThe 7758f0484fSRodney W. Grimes.Fn memcmp 7858f0484fSRodney W. Grimesfunction 7958f0484fSRodney W. Grimesconforms to 80588a200cSRuslan Ermilov.St -isoC . 81*5cc53d79SEd Maste.Sh CAVEATS 82*5cc53d79SEd MasteIf the objects differ, the C library 83*5cc53d79SEd Maste.Fn memcmp 84*5cc53d79SEd Masteimplementation returns the difference between the first two differing bytes 85*5cc53d79SEd Maste.Po treated as 86*5cc53d79SEd Maste.Vt "unsigned char" 87*5cc53d79SEd Mastevalues 88*5cc53d79SEd Maste.Pc . 89*5cc53d79SEd MasteThis behavior is not specified by 90*5cc53d79SEd Maste.St -isoC , 91*5cc53d79SEd Masteis not portable, and may not occur in light of compiler optimizations. 92