memory man page on Plan9

Printed from

MEMORY(2)							     MEMORY(2)

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

       #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)

       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

       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.

       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.


       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.

                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server Plan9

List of man pages available for Plan9

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net