strncpy

[stɹɪŋ ɛn ˈkɒpi] ストリンエヌコピー

1. C言語の標準ライブラリ関数の一つで、指定されたバイト数まで文字列をコピーします。特に、コピー先のバッファサイズを超えないように制限するために使用されます。

C言語における文字列操作関数の一つで、安全性の観点から導入されました。指定されたコピーバイト数(`n`)は、宛先バッファのサイズを超えないように設定することが重要です。ソース文字列が`n`文字より短い場合、残りの領域はNULL文字で埋められます。しかし、ソース文字列が`n`文字以上の場合、`n`文字だけがコピーされ、宛先バッファはNULL終端されません。このため、`strncpy`使用後には明示的なNULL終端処理が推奨されます。
char dest[10]; strncpy(dest, "hello", sizeof(dest) - 1); dest[sizeof(dest) - 1] = '\0'; (10バイトの文字配列`dest`を宣言し、"hello"を`dest`にコピーします。バッファオーバーフローを防ぐため、コピーする最大バイト数を制限し、最後にNULL終端します。)
関連
strncpy_s
memset
C language
string handling