C言語入門(51) 実際にプログラムを読んで理解を深めよう tail編(6)

Posted: 2013年08月01日

前回は、行単位での読み込み処理を見ました。
今回は、行単位での読み込み処理です。



カテゴリー: プログラム, 入門 | タグ: , , | コメント無し »

バグ:大きいサイズのファイルを読み込むとエラーになる

Posted: 2013年07月29日

ファイルの読み込み処理プログラムで書いてしまうバグを紹介します。

プログラムプログラム:

 #include <stdio.h>

 int main(int argc, char *argv[])
 {
     FILE *fp;
     fp = fopen(argv[1],"r");
     if (fp == NULL) {
        // ファイルが開けない
        return 1;
     }

     // ファイルの最後の位置へ移動しファイルサイズを取得
     fseek(fp, 0, SEEK_END);
     long nFileSize = ftell(fp);

     // 先頭から読み込むため移動
     fseek(fp, 0, SEEK_SET);

     char *pFileData = new char[nFileSize];
     fread(pFileData, sizeof(char), nFileSize, fp);

    // 処理

     delete[] pFileData;

    return 0;
 }

このプログラムにどのようにファイルの読み込み処理にバグが存在すると思いますか?



カテゴリー: バグ, プログラム | タグ: , , , | コメント無し »

C言語入門(50) 実際にプログラムを読んで理解を深めよう tail編(5)

Posted: 2013年07月25日

前回は、バイト単位での読み込み処理を見ました。
今回は、行単位での読み込み処理です。



カテゴリー: プログラム, 入門 | タグ: , , | コメント無し »

バグ:浮動点小数を文字列化した際に出るかもしれない問題

Posted: 2013年07月22日

数値の文字列化により問題となる処理を紹介します。

プログラムプログラム:

 #include <stdio.h>
 #include <stdlib.h>

 int main(int argc, char *argv[])
 {
    double nVal = 1.2346789;
    char szVal[16];

    sprintf(szVal, "%lf", nVal);

    // 処理

    return 0;
 }

このプログラムにどのように数値の文字列化処理に問題が存在すると思いますか?



カテゴリー: バグ, プログラム | タグ: , , , | コメント無し »

C言語入門(49) 実際にプログラムを読んで理解を深めよう tail編(4)

Posted: 2013年07月18日

前回は、ファイルの読み込み処理を取り上げました
実際には各フラグごとに読み込み処理関数を呼び分けていました。

今回は、その中の一つバイト単位の読み込み処理です。



カテゴリー: プログラム, 入門 | タグ: , , | コメント無し »

バグ:文字列の初期化表示でビルドエラー

Posted: 2013年07月15日

文字列の書式化表示を行うプログラムで書いてしまうバグを紹介します。
ビルド時にエラーとなると思いますが

プログラムプログラム:

 #include <stdio.h>

 int main(int argc, char *argv[])
 {
    char cSrc = 'a';

    vprintf("%s", cSrc);

    // 処理

    return 0;
 }

このプログラムにどのように文字列の書式表示する処理にバグが存在すると思いますか?



カテゴリー: バグ, プログラム | タグ: , , | コメント無し »

C言語入門(48) 実際にプログラムを読んで理解を深めよう tail編(3)

Posted: 2013年07月11日

今回は、実際の処理です。
関数で言うとfoward関数
エントリーポイントで呼ばれていた関数です。



カテゴリー: プログラム, 入門 | タグ: , , | コメント無し »

バグ:文字列中の文字を正しく判断するためには

Posted: 2013年07月08日

文字の種類を判断するプログラムで書いてしまうバグを紹介します。

プログラムプログラム:

 #include <stdio.h>

 int main(int argc, char *argv[])
 {
    char cSrc = 'a';

    // 入力要求
    if (isascii(cSrc) == 0) {
        return;
    }

    // 処理

    return 0;
 }

このプログラムにどのように文字の種類を判断する処理にバグが存在すると思いますか?



カテゴリー: バグ, プログラム | タグ: , , | コメント無し »

C言語入門(47) 実際にプログラムを読んで理解を深めよう tail編(2)

Posted: 2013年07月04日

前回はtailコマンドのエントリーポイントについて書きました。
今回は、エントリーポイントから呼ばれるobsolete関数を解説します。



カテゴリー: プログラム, 入門 | タグ: , , | コメント無し »

バグ:文字列の反転をした場合問題ありますか

Posted: 2013年07月02日

文字列操作(文字列の反転)で書いてしまうバグを紹介します。

プログラムプログラム:

 #include <stdio.h>
 #include <string.h>

 int main(int argc, char *argv[])
 {
    const TCHAR *pszSrc = _T("ABCDEF");
    TCHAR *pszRev = _strrev(pszSrc);

    // 処理

    return 0;
 }

このプログラムにどのように文字列操作(文字列の反転)にバグが存在すると思いますか?



カテゴリー: バグ, プログラム | タグ: , , | コメント無し »
Page 2 of 9123456789