Re: str{,l,n}cpy()
新城@筑波大学情報です。こんにちは。
In article <m3smif4a2f.fsf@kzin.dip.jp>
Mito <co_mon@ybb.ne.jp> writes:
> > 何か「こういう時には strcpy() がいい」という状況はありますか?
> コピー先のサイズが分らない場合は strcpy() がいいです。:-P
なるほど。それはそうですね。(←念のために書いておきますが、
コピー先のサイズが分からないという状況は、非常に危険な状況な
ので、そういうことがないようにプログラムを作るべきだという意
味です。)
> そういや strncpy は構造体のメンバにセットする時便利だっての
> を思い出しました。
> struct {
> char s[128];
> } s1, s2;
> strncpy(s1.s, "abc", sizeof(s1.s));
> strncpy(s2.s, "abc", sizeof(s2.s));
> if (memcmp(&s1, &s2, sizeof(s1)) == 0) {
> puts("便利!");
> }
たしかに。これは、使えます。メモリ中のデータ構造というよりは、
ディスクに書込むようなデータ構造の時には、0で埋めたくなりま
す。たとえば、昔の14文字いないのディレクトリとか、utmp と
か wtmp とか。
構造体の memcmp() は、やらないけど。オブジェクト指向的に構造
体ごとに equal() 関数を定義します。
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報 \\
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735