タグ

ブックマーク / www.hondarer-soft.com (1)

  • snprintf - こんな関数あるんだ。 (凍結)

    こんな関数あるんだ。 と思ったのでメモ。 snprintf(3)という関数が用意されたシステムでは、下記の様なコーディングでバッファオーバーフローを防げるそうだ。 #include <stdio.h> int main(int argc, char **argv) { int n = 123456; char str[4] = "000"; printf("%s\n", str); snprintf(str, sizeof(str), "%d", n); printf("%s\n", str); return(0); } 000 123 でもこれ、ANSI C はもちろん C99 でも規格化されていないので、仕事で使用するプログラムには皮をかぶせるかなんかしないと使えないみたい。処理系によって戻り値や処理内容まで違うとは恐るべし。…もっとも Visual C の、互換性:Win95,Win

  • 1