Manpages

名 前

mempcpy, wmempcpy − メ モ リ ー 領 域 を コ ピ ー す る

書 式

#define _GNU_SOURCE /* feature_test_macros(7) 参 照 */
#include <string.h>

void *mempcpy(void *dest, const void *src, size_t n);

#define _GNU_SOURCE /* feature_test_macros(7) 参 照 */
#include <wchar.h>

wchar_t *wmempcpy(wchar_t *dest, const wchar_t *src, size_t n);

説 明

mempcpy() 関 数 は memcpy(3) 関 数 と ほ ぼ 同 一 で あ る 。 こ の 関 数 は 、 src で 始 ま る オ ブ ジ ェ ク ト か ら n バ イ ト を 、 dest で 指 さ れ る オ ブ ジ ェ ク ト に コ ピ ー す る 。 た だ し dest の 値 を 返 す の で は な く 、 最 後 に 書 き 込 ま れ た バ イ ト の 後 に 続 く バ イ ト へ の ポ イ ン タ ー を 返 す 。 こ の 関 数 は い く つ か の オ ブ ジ ェ ク ト が 連 続 的 な メ モ リ ー の 場 所 に コ ピ ー さ れ る よ う な 状 況 で 役 に 立 つ 。

wmempcpy() 関 数 は こ の 関 数 と 同 じ で あ る が 、 wchar_t 型 の 引 き 数 を と り 、 n ワ イ ド 文 字 列 を コ ピ ー す る 。

返 り 値

dest + n.

バ ー ジ ョ ン

mempcpy() は glibc バ ー ジ ョ ン 2.1 で 初 め て 登 場 し た 。

属 性

マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 ) 関 数 mempcpy() と wmempcpy() は ス レ ッ ド セ ー フ で あ る 。

準 拠

こ の 関 数 は GNU に よ る 拡 張 で あ る 。

void *
combine (void *o1, size_t s1, void *o2, size_t s2)
{
void *result = malloc(s1 + s2);
if (result != NULL)
mempcpy(mempcpy(result, o1, s1), o2, s2);
return result;

関 連 項 目

memccpy(3), memcpy(3), memmove(3), wmemcpy(3)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。