yas@is.tsukuba.ac.jp (Yasushi Shinjo) writes:

> > 新城さんの考えは、たとえ strcpy の正しい使いかたを知ったとし
> > ても使うべきではない、というふうに思われるのですが、もしそう
> > なら理由を教えてもらえませんか?
> 
> strcpy() を使った方がよい局面というのが、なかなか出てこない
> ので、「strcpy()使うな」でいいんじゃないか、ということです。

そういうことでしたか。ちょっと残念。

> 何か「こういう時には strcpy() がいい」という状況はありますか?

コピー先のサイズが分らない場合は strcpy() がいいです。:-P

ということじゃなくて、もともとの話の流れの buffer overflow 
を防ぐために strcpy や strcat を使わせないようにするにはどう
したらいいかという話での、strcpy がいい状況ってことですよね。

たぶんないんじゃないでしょうか。strlcpy なり snprintf ででき
ますし。

ただ、「strcpy() で十分」という状況は多々あると思うわけで、
そんな時にも「strcpy()使うな」っていやだなぁと。

P.S.
そういや 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("便利!");
  }

-- 
01/17 10:50頃
水戸