ライブラリ関数の細かいところで何があるのか忘れてるのでリファレンス的な何かが無いかと検索したところなにやらstrncatの使い方が気になりました。
strncat(buffer, index_file, sizeof(buffer));
となっている部分。
これってbufferのサイズを超えてセットされませんかねぇ…
検索して引っかかったページの仕様とgccのライブラリの仕様が違うのかな?
どんな解釈が一般的だったかとかもあやしいのですけど。
delphiの解説で引っかかったページでは
#include <stdio.h>
#include <string.h>
void main(void)
{
char *buf1="Borland";
char buf2[]=" Delphi";
strncat(buf1,buf2,strlen(buf2));
printf("連結後:%s\n",buf1);
getchar();
}
とかサンプルコードが載ってますけど、これこんなことしちゃいかんような(笑)
思いっきりリテラル領域を壊してる気がしますけどねw
いや…やりたいことは違うことなんですが。
0 件のコメント:
コメントを投稿