manpagez: man pages & more
man memset_s(3)
Home | html | info | man
memset_s(3)              BSD Library Functions Manual              memset_s(3)


NAME

     memset_s -- copy a value to all bytes of a memory buffer


LIBRARY

     Standard C Library (libc, -lc)


SYNOPSIS

     #define __STDC_WANT_LIB_EXT1__ 1
     #include <string.h>

     errno_t
     memset_s(void *s, rsize_t smax, int c, rsize_t n);


DESCRIPTION

     The memset_s() function copies the value c (converted to an unsigned
     char) into each of the first n bytes of the memory buffer whose starting
     address is given by s.

     It is a runtime-consrtaints violation if s is a null pointer, or if
     either of smax or n is larger than RSIZE_MAX, or if smax is smaller than
     n.  If there is a runtime-constraints violation, and if s is not a null
     pointer, and if smax is not larger than RSIZE_MAX, then, before reporting
     the runtime-constraints violation, memset_s() copies smax bytes to the
     destination.

     In contrast to the memset(3) function, calls to memset_s() will never be
     ``optimised away'' by a compiler.  This property is required by the fol-
     lowing sentences in section K.3.7.4.1 of :

           Unlike memset(), any call to the memset_s() function shall be eval-
           uated  strictly  according  to the rules of the abstract machine as
           described in (5.1.2.3).  That is, any call to the memset_s()  func-
           tion  shall  assume  that  the  memory  indicated by s and n may be
           accessible in the future and thus must contain the values indicated
           by c.


RETURN VALUES

     The memset_s() function returns zero for success, or a non-zero error
     code if there was a runtime-constraints violation.


ERRORS

     memset_s() returns the following error codes.  It does not store the
     error code in the global errno variable:

     [EINVAL]           The s argument was a null pointer.

     [E2BIG]            One or both of smax or n was larger than RSIZE_MAX.

     [EOVERFLOW]        n was larger than smax.


SEE ALSO

     memset(3).


STANDARDS

     The memset_s() function conforms to , except that the
     set_constraint_handler_s() interface is not supported.

BSD                            February 21, 2012                           BSD

Mac OS X 10.9.1 - Generated Fri Jan 10 06:40:46 CST 2014
© manpagez.com 2000-2024
Individual documents may contain additional copyright information.