タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

cに関するriver2470のブックマーク (2)

  • 文字列はNULL終端させる ――C/C++セキュアコーディング入門(3)

    攻撃対象として狙われやすい文字列処理 文字列は、プログラムとユーザ、プログラムとプログラム間のインタフェースとして利用されるのをはじめ、XMLなどテキスト形式で表現された情報を処理する際にも利用されます。データのみならず、プログラムの挙動に直接影響する動作パラメタや設定情報など様々な情報がテキスト形式で表現されるにつれ、文字列を処理する機会が増加すると共に、文字列を処理すること自体の重要性が高まっています。 攻撃者にしてみれば、プログラムの挙動を操作しうる文字列処理の不備を突く機会も多く存在することになるため、文字列操作エラーを作り込まないことが求められます。文字列操作に関するプログラミングエラーはいくつかありますが、今回は基的であるが間違いを犯しやすい文字列のNULL終端エラーについて解説します。 NULL終端エラー 文字列型を持たないC言語において、文字列は文字型の配列で表現されます

    文字列はNULL終端させる ――C/C++セキュアコーディング入門(3)
  • printfやscanf、std::coutなどの入出力先をファイルに変更する - Programming Magic

    標準入力に何かを入力させて処理をするプログラムをデバッグする場合、何度も同じ入力を繰り返すことがよくある。そんなときには入力データをファイルとして用意して、パイプとリダイレクションを使ってファイルに入出力をすると便利だが、それ以外にもfreopen関数を使う方法もある。Windows上でVisual Studioのような統合開発環境を使って開発をしている場合には、こちらの方が便利かもしれない。 例えば、以下のように、標準入力から数値を読み込んで計算結果を出力するプログラムがあったとする。 #include <stdio.h> int main(){ int n; while(scanf("%d", &n)){ printf("%d * %d = %d\n", n, n, n*n); } return 0; } このプログラムは以下のようにfreopen関数を使うことで、data.txtから

    river2470
    river2470 2012/10/12
  • 1