Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ memory(3C) — CX/UX 6.20

Media Vault

Software Library

Restoration Projects

Artifacts Sought

memory(3C)  —  AT&T SYSTEM V

NAME

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

SYNOPSIS

#include <memory.h> (AT&T)
or
#include <string.h> (POSIX)

char ∗memccpy (s1, s2, c, n)
char ∗s1, ∗s2;
int c, n;

char ∗memchr (s, c, n)
char ∗s;
int c, n;

int memcmp (s1, s2, n)
char ∗s1, ∗s2;
int n;

char ∗memcpy (s1, s2, n)
char ∗s1, ∗s2;
int n;

char ∗memmove (s1, s2, n)
char ∗s1, ∗s2;
int n;

char ∗memset (s, c, n)
char ∗s;
int c, n;

DESCRIPTION

These functions operate as efficiently as possible on memory areas (arrays of characters bounded by a count, not terminated by a null character).  They do not check for the overflow of any receiving memory area. 

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

Memchr returns a pointer to the first occurrence of character c in the first n characters of memory area s, or a NULL pointer if c does not occur.

Memcmp compares its arguments, looking at the first n characters 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. 

Memcpy copies n characters from memory area s2 to s1.  It returns s1.  If copying takes place between memory areas that overlap, the behavior is undefined. 

Memmove copies n characters from memory area s2 to s1.  It returns s1.  Memmove behaves as if the characters from memory area s2 were first copied to a temporary area before being copied to s1.  So memmove may be used safely with overlapping memory areas. 

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

NOTE

For user convenience, all these functions are declared in the optional <memory.h> and <string.h> header files.  Users may include either header file.  <string.h> is the header file specified by the POSIX standard and <memory.h> is the traditional AT&T header file. 

BUGS

Memcmp uses native character comparison, which is unsigned on other machines.  Thus the sign of the value returned when one of the characters has its high-order bit set is implementation-dependent. 

Character movement is performed differently in different implementations.  Thus overlapping moves may yield surprises. 

CX/UX Programmer’s Reference Manual

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