名 前
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/ に 書 か れ て い る 。