1 .\" 2 .\" This file and its contents are supplied under the terms of the 3 .\" Common Development and Distribution License ("CDDL"), version 1.0. 4 .\" You may only use this file in accordance with the terms of version 5 .\" 1.0 of the CDDL. 6 .\" 7 .\" A full copy of the text of the CDDL should have accompanied this 8 .\" source. A copy of the CDDL is also available via the Internet at 9 .\" http://www.illumos.org/license/CDDL. 10 .\" 11 .\" 12 .\" Copyright 2018 Nexenta Systems, Inc. 13 .\" 14 .Dd August 12, 2017 15 .Dt MEMSET_S 3C 16 .Os 17 .Sh NAME 18 .Nm memset_s 19 .Nd copy a value to all bytes of a memory buffer 20 .Sh LIBRARY 21 .Lb libc 22 .Sh SYNOPSIS 23 .Fd #define __STDC_WANT_LIB_EXT1__ 1 24 .In string.h 25 .Ft errno_t 26 .Fo memset_s 27 .Fa "void *s" 28 .Fa "rsize_t smax" 29 .Fa "int c" 30 .Fa "rsize_t n" 31 .Fc 32 .Sh DESCRIPTION 33 The 34 .Fn memset_s 35 function copies the value of 36 .Fa c 37 .Po converted to an 38 .Vt unsigned char 39 .Pc 40 into each of the first 41 .Fa n 42 bytes of the memory buffer pointed to by 43 .Fa s . 44 .Pp 45 Unlike the 46 .Xr memset 3C , 47 .Fn memset_s 48 is guaranteed to never be optimized away by the compiler. 49 .Pp 50 The 51 .Fn memset_s 52 function detects the following runtime-constraint violations: 53 .Bl -enum 54 .It 55 .Fa s 56 is a 57 .Dv NULL 58 pointer. 59 .It 60 .Fa smax 61 or 62 .Fa n 63 is greater than 64 .Dv RSIZE_MAX . 65 .It 66 .Fa n 67 is greater than 68 .Fa smax 69 .Pq buffer overflow . 70 .El 71 .Pp 72 If runtime-constraint violation is detected, and if 73 .Fa s 74 and 75 .Fa smax 76 are valid, the 77 .Fn memset_s 78 function copies the value of 79 .Fa c 80 .Po converted to an 81 .Vt unsigned char 82 .Pc 83 into each of the first 84 .Fa smax 85 bytes of the memory buffer pointed to by 86 .Fa s 87 before calling the runtime-constraint handler. 88 .Sh RETURN VALUES 89 The 90 .Fn memset_s 91 function returns 0 if there was no runtime-constraint violation. 92 Otherwise, a non-zero value is returned. 93 .Sh INTERFACE STABILITY 94 .Sy Standard 95 .Sh MT-LEVEL 96 .Sy Safe 97 .Sh SEE ALSO 98 .Xr memset 3C , 99 .Xr set_constraint_handler 3C 100 .Sh STANDARDS 101 The 102 .Fn memset_s 103 function conforms to 104 .St -isoC-2011 .