_memccpy
更新 : 2007 年 11 月
バッファから文字をコピーします。
void *_memccpy(
void *dest,
const void *src,
int c,
size_t count
);
パラメータ
dest
対象となるバッファへのポインタ。src
コピー元へのポインタ。c
コピーする最後の文字。count
文字数。
戻り値
文字 c をコピーすると、_memccpy 関数はその文字の直後にある dest 内の文字へのポインタを返します。文字 c がコピーされなかった場合は、NULL を返します。
解説
_memccpy 関数は、src が指す位置から 0 以上の文字を dest が指す位置にコピーします。文字 c をコピーするか、count に指定された文字数をコピーした時点で、処理が中断します。
セキュリティに関するメモ 対象のバッファのサイズが、コピー元のバッファのサイズ以上であることを確認してください。詳細については、「Avoiding Buffer Overruns」を参照してください。
必要条件
ルーチン |
必須ヘッダー |
---|---|
_memccpy |
<memory.h> または <string.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
ライブラリ
C ランタイム ライブラリのすべてのバージョン。
使用例
// crt_memccpy.c
#include <memory.h>
#include <stdio.h>
#include <string.h>
char string1[60] = "The quick brown dog jumps over the lazy fox";
int main( void )
{
char buffer[61];
char *pdest;
printf( "Function: _memccpy 60 characters or to character 's'\n" );
printf( "Source: %s\n", string1 );
pdest = _memccpy( buffer, string1, 's', 60 );
*pdest = '\0';
printf( "Result: %s\n", buffer );
printf( "Length: %d characters\n", strlen( buffer ) );
}
出力
Function: _memccpy 60 characters or to character 's'
Source: The quick brown dog jumps over the lazy fox
Result: The quick brown dog jumps
Length: 25 characters