Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ memccpy(3) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

string(3)

MEMORY(3)  —  NEWS-OS Programmer’s Manual

名称

memccpy, memchr, memcmp, memcpy, memmove, memset − メモリ操作

形式

include <string.h>

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;

解説

これらの関数は、 メモリ領域 (ナル文字で終わらずにバイト数で境界が指定されたバイト列) に できるだけ効率的に働きます。 これらは受け取り側のオーバフローについて全くチェックしません。

memccpy() は、メモリ領域 s2 から s1 へバイト列をコピーし、 最初に現れた c をコピーした時、 または n バイト全部をコピーした時、 コピーを終了します。 このルーチンは、 s1 の c のコピーが終わると次のポインタを返し、 s2 の最初の n バイト以内に c がないときはナルポインタを返します。 c は unsigned char に変換され、 s2 の各バイトも unsigned char と解釈されます。

memchr() は、メモリ領域 s の最初の n バイトの中に c を見つけるとそのポインタを返し、 c がないときはナルポインタを返します。 c は unsigned char に変換され、 s1 の各バイトも unsigned char と解釈されます。

memcmp() は、最初の n バイトだけについて引数を比べ (比較は unsigned char で行う)、 s1 が s2 より辞書的に小さい (前) か、等しいか、大きい (後) かによって、 0 より小さい、0、0 より大きい整数値を返します。

memcpy() は、 s2 から n バイトを s1 へコピーし、 s1 を返します。

memmove() は、 s2 から n バイトを s1 へコピーし、 s1 を返します。 s1 と s2 の指すバイト列が重なっている場合でも、コピーは正しく行われます。

memset() は、 メモリ領域 s の最初の n バイトを c の値に設定し、 s を返します。

注意事項

ユーザの便宜を計るため、 これらの関数は全てヘッダファイル <string.h> の中で宣言しています。

バイトの移動は、インプリメントごとに異なるので、 重なりの生じる移動では、思いどおりにならないかもしれません。

関連事項

string(3)

NEWS-OSRelease 4.2.1R

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