tmemory.3 - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       tmemory.3 (2136B)
       ---
            1 .TH MEMORY 3
            2 .SH NAME
            3 memccpy, memchr, memcmp, memcpy, memmove, memset \- memory operations
            4 .SH SYNOPSIS
            5 .B #include <u.h>
            6 .br
            7 .B #include <libc.h>
            8 .PP
            9 .ta \w'\fLvoid* 'u
           10 .B
           11 void*        memccpy(void *s1, void *s2, int c, long n)
           12 .PP
           13 .B
           14 void*        memchr(void *s, int c, long n)
           15 .PP
           16 .B
           17 int        memcmp(void *s1, void *s2, long n)
           18 .PP
           19 .B
           20 void*        memcpy(void *s1, void *s2, long n)
           21 .PP
           22 .B
           23 void*        memmove(void *s1, void *s2, long n)
           24 .PP
           25 .B
           26 void*        memset(void *s, int c, long n)
           27 .SH DESCRIPTION
           28 These functions operate efficiently on memory areas
           29 (arrays of bytes bounded by a count, not terminated by a zero byte).
           30 They do not check for the overflow of any receiving memory area.
           31 .PP
           32 .I Memccpy
           33 copies bytes from memory area
           34 .I s2
           35 into
           36 .IR s1 ,
           37 stopping after the first occurrence of byte
           38 .I c
           39 has been copied, or after
           40 .I n
           41 bytes have been copied, whichever comes first.
           42 It returns a pointer to the byte after
           43 the copy of
           44 .I c
           45 in
           46 .IR s1 ,
           47 or zero if
           48 .I c
           49 was not found in the first
           50 .I n
           51 bytes of
           52 .IR s2 .
           53 .PP
           54 .I Memchr
           55 returns a pointer to the first
           56 occurrence of byte
           57 .I c
           58 in the first
           59 .I n
           60 bytes of memory area
           61 .IR s,
           62 or zero if
           63 .I c
           64 does not occur.
           65 .PP
           66 .I Memcmp
           67 compares its arguments, looking at the first
           68 .I n
           69 bytes only, and returns an integer
           70 less than, equal to, or greater than 0,
           71 according as
           72 .I s1
           73 is lexicographically less than, equal to, or
           74 greater than
           75 .IR s2 .
           76 The comparison is bytewise unsigned.
           77 .PP
           78 .I Memcpy
           79 copies
           80 .I n
           81 bytes from memory area 
           82 .I s2
           83 to
           84 .IR s1 .
           85 It returns
           86 .IR s1 .
           87 .PP
           88 .I Memmove
           89 works like
           90 .IR memcpy ,
           91 except that it is guaranteed to work if
           92 .I s1
           93 and
           94 .IR s2
           95 overlap.
           96 .PP
           97 .I Memset
           98 sets the first
           99 .I n
          100 bytes in memory area
          101 .I s
          102 to the value of byte
          103 .IR c .
          104 It returns
          105 .IR s .
          106 .SH SOURCE
          107 All these routines have portable C implementations in
          108 .BR \*9/src/lib9 .
          109 .\" Most also have machine-dependent assembly language implementations in
          110 .\" .BR \*9/lib9/$objtype .
          111 .SH SEE ALSO
          112 .MR strcat (3)
          113 .SH BUGS
          114 ANSI C does not require
          115 .I memcpy
          116 to handle overlapping source and destination; on Plan 9, it does, so
          117 .I memmove
          118 and
          119 .I memcpy
          120 behave identically.
          121 .PP
          122 If
          123 .I memcpy
          124 and
          125 .I memmove
          126 are handed a negative count, they abort.