[Q] see return value (strncpy)
柏崎@北海道です。
色んな本のバックナンバーなどを読み漁っている今日このごろ、とある
本に「関数の戻り値を見ないプログラム書く学生多過ぎ」とか書かれて
あって、「うう、耳が痛い」という状態です。
そこでちゃんと戻り値を見ようという事で、今書いているコードの中に
頻出する strncpy について考える時、
char *strncpy (char *s1, const char *s2, size_t n);
で、s1の値が返される訳ですが、これを見るという事は、例えば以下の
ような str1, str2 があって、str2 に str1 の内容を複写する時は、
#define STR_LENGTH 256
char str1 [ STR_LENGTH ];
char str2 [ STR_LENGTH ];
if (strncmp (strncpy (str2, str1, STR_LENGTH),
str1,
STR_LENGTH) != 0)
{
printf ("FAILED.\n");
exit (EXIT_FAILURE);
}
このようにチェックをすれば良い、ということでよろしいのでしょうか。
それとも全然見当外れ ?
--
柏崎 礼生 (Hiroki Kashiwazaki)@HUIIC
Ph.D candidate in the Division of Electronics & Information
Engineering, Hokkaido University
mailto:reo@cc.hokudai.ac.jp
Tel:+81-11-706-2998
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