glenda.party
term% ls -F
term% cat index.txt
MEMORY(2)                     System Calls Manual                    MEMORY(2)



NAME
       memccpy, memchr, memcmp, memcpy, memmove, memset - memory operations

SYNOPSIS
       #include <u.h>
       #include <libc.h>

       void* memccpy(void *s1, void *s2, int c, ulong n)

       void* memchr(void *s, int c, ulong n)

       int   memcmp(void *s1, void *s2, ulong n)

       void* memcpy(void *s1, void *s2, ulong n)

       void* memmove(void *s1, void *s2, ulong n)

       void* memset(void *s, int c, ulong n)

DESCRIPTION
       These  functions  operate  efficiently on memory areas (arrays of bytes
       bounded by a count, not terminated by a zero byte).  They do not  check
       for the overflow of any receiving memory area.

       Memccpy  copies  bytes  from memory area s2 into s1, stopping after the
       first occurrence of byte c has been copied, or after n bytes have  been
       copied,  whichever comes first.  It returns a pointer to the byte after
       the copy of c in s1, or zero if c was not found in the first n bytes of
       s2.

       Memchr returns a pointer to the first occurrence of byte c in the first
       n bytes of memory area s, or zero if c does not occur.

       Memcmp compares its arguments, looking at the first n bytes  only,  and
       returns an integer less than, equal to, or greater than 0, according as
       s1 is lexicographically less than, equal to, or greater than  s2.   The
       comparison is bytewise unsigned.

       Memcpy copies n bytes from memory area s2 to s1.  It returns s1.

       Memmove  works  like memcpy, except that it is guaranteed to work if s1
       and s2 overlap.

       Memset sets the first n bytes in memory area s to the value of byte  c.
       It returns s.

SOURCE
       All    these    routines    have    portable   C   implementations   in
       /sys/src/libc/port.  Most also have machine-dependent assembly language
       implementations in /sys/src/libc/$objtype.

SEE ALSO
       strcat(2)

BUGS
       ANSI  C does not require memcpy to handle overlapping source and destiā€
       nation; on Plan 9, it does, so memmove and memcpy behave identically.

       If memcpy and memmove are handed a negative count, they abort.



                                                                     MEMORY(2)