Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ (2) — Plan9 4th Edition

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

strcat(2)

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, long n)

void∗memchr(void ∗s, int c, long n)

intmemcmp(void ∗s1, void ∗s2, long n)

void∗memcpy(void ∗s1, void ∗s2, long n)

void∗memmove(void ∗s1, void ∗s2, long n)

void∗memset(void ∗s, int c, long 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 destination; on Plan 9, it does, so ­memmove and ­memcpy behave identically. 

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

Plan 9  —  December 11, 1999

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026