xref: /illumos-gate/usr/src/man/man3c/memset_s.3c (revision 9f17ecf0b8fdc59cfa903ceb6a96046b0f2d8201)
100efb5e1SYuri Pankov.\"
200efb5e1SYuri Pankov.\" This file and its contents are supplied under the terms of the
300efb5e1SYuri Pankov.\" Common Development and Distribution License ("CDDL"), version 1.0.
400efb5e1SYuri Pankov.\" You may only use this file in accordance with the terms of version
500efb5e1SYuri Pankov.\" 1.0 of the CDDL.
600efb5e1SYuri Pankov.\"
700efb5e1SYuri Pankov.\" A full copy of the text of the CDDL should have accompanied this
800efb5e1SYuri Pankov.\" source.  A copy of the CDDL is also available via the Internet at
900efb5e1SYuri Pankov.\" http://www.illumos.org/license/CDDL.
1000efb5e1SYuri Pankov.\"
1100efb5e1SYuri Pankov.\"
1200efb5e1SYuri Pankov.\" Copyright 2018 Nexenta Systems, Inc.
1300efb5e1SYuri Pankov.\"
1400efb5e1SYuri Pankov.Dd August 12, 2017
1500efb5e1SYuri Pankov.Dt MEMSET_S 3C
1600efb5e1SYuri Pankov.Os
1700efb5e1SYuri Pankov.Sh NAME
1800efb5e1SYuri Pankov.Nm memset_s
1900efb5e1SYuri Pankov.Nd copy a value to all bytes of a memory buffer
2000efb5e1SYuri Pankov.Sh LIBRARY
2100efb5e1SYuri Pankov.Lb libc
2200efb5e1SYuri Pankov.Sh SYNOPSIS
2300efb5e1SYuri Pankov.Fd #define __STDC_WANT_LIB_EXT1__ 1
2400efb5e1SYuri Pankov.In string.h
2500efb5e1SYuri Pankov.Ft errno_t
2600efb5e1SYuri Pankov.Fo memset_s
2700efb5e1SYuri Pankov.Fa "void *s"
2800efb5e1SYuri Pankov.Fa "rsize_t smax"
2900efb5e1SYuri Pankov.Fa "int c"
3000efb5e1SYuri Pankov.Fa "rsize_t n"
3100efb5e1SYuri Pankov.Fc
3200efb5e1SYuri Pankov.Sh DESCRIPTION
3300efb5e1SYuri PankovThe
3400efb5e1SYuri Pankov.Fn memset_s
3500efb5e1SYuri Pankovfunction copies the value of
3600efb5e1SYuri Pankov.Fa c
3700efb5e1SYuri Pankov.Po converted to an
3800efb5e1SYuri Pankov.Vt unsigned char
3900efb5e1SYuri Pankov.Pc
4000efb5e1SYuri Pankovinto each of the first
4100efb5e1SYuri Pankov.Fa n
4200efb5e1SYuri Pankovbytes of the memory buffer pointed to by
4300efb5e1SYuri Pankov.Fa s .
4400efb5e1SYuri Pankov.Pp
4500efb5e1SYuri PankovUnlike the
4600efb5e1SYuri Pankov.Xr memset 3C ,
4700efb5e1SYuri Pankov.Fn memset_s
4800efb5e1SYuri Pankovis guaranteed to never be optimized away by the compiler.
4900efb5e1SYuri Pankov.Pp
5000efb5e1SYuri PankovThe
5100efb5e1SYuri Pankov.Fn memset_s
5200efb5e1SYuri Pankovfunction detects the following runtime-constraint violations:
5300efb5e1SYuri Pankov.Bl -enum
5400efb5e1SYuri Pankov.It
5500efb5e1SYuri Pankov.Fa s
5600efb5e1SYuri Pankovis a
5700efb5e1SYuri Pankov.Dv NULL
5800efb5e1SYuri Pankovpointer.
5900efb5e1SYuri Pankov.It
6000efb5e1SYuri Pankov.Fa smax
6100efb5e1SYuri Pankovor
6200efb5e1SYuri Pankov.Fa n
6300efb5e1SYuri Pankovis greater than
6400efb5e1SYuri Pankov.Dv RSIZE_MAX .
6500efb5e1SYuri Pankov.It
6600efb5e1SYuri Pankov.Fa n
6700efb5e1SYuri Pankovis greater than
6800efb5e1SYuri Pankov.Fa smax
6900efb5e1SYuri Pankov.Pq buffer overflow .
7000efb5e1SYuri Pankov.El
7100efb5e1SYuri Pankov.Pp
7200efb5e1SYuri PankovIf runtime-constraint violation is detected, and if
7300efb5e1SYuri Pankov.Fa s
7400efb5e1SYuri Pankovand
7500efb5e1SYuri Pankov.Fa smax
7600efb5e1SYuri Pankovare valid, the
7700efb5e1SYuri Pankov.Fn memset_s
7800efb5e1SYuri Pankovfunction copies the value of
7900efb5e1SYuri Pankov.Fa c
8000efb5e1SYuri Pankov.Po converted to an
8100efb5e1SYuri Pankov.Vt unsigned char
8200efb5e1SYuri Pankov.Pc
8300efb5e1SYuri Pankovinto each of the first
8400efb5e1SYuri Pankov.Fa smax
8500efb5e1SYuri Pankovbytes of the memory buffer pointed to by
8600efb5e1SYuri Pankov.Fa s
8700efb5e1SYuri Pankovbefore calling the runtime-constraint handler.
8800efb5e1SYuri Pankov.Sh RETURN VALUES
8900efb5e1SYuri PankovThe
9000efb5e1SYuri Pankov.Fn memset_s
9100efb5e1SYuri Pankovfunction returns 0 if there was no runtime-constraint violation.
9200efb5e1SYuri PankovOtherwise, a non-zero value is returned.
9300efb5e1SYuri Pankov.Sh INTERFACE STABILITY
9400efb5e1SYuri Pankov.Sy Standard
9500efb5e1SYuri Pankov.Sh MT-LEVEL
9600efb5e1SYuri Pankov.Sy Safe
9700efb5e1SYuri Pankov.Sh SEE ALSO
9800efb5e1SYuri Pankov.Xr memset 3C ,
99*9f17ecf0SPeter Tribble.Xr set_constraint_handler_s 3C
10000efb5e1SYuri Pankov.Sh STANDARDS
10100efb5e1SYuri PankovThe
10200efb5e1SYuri Pankov.Fn memset_s
10300efb5e1SYuri Pankovfunction conforms to
10400efb5e1SYuri Pankov.St -isoC-2011 .
105