バグ : 一時ファイルの作成

Posted: 2012年08月12日

一時ファイルを作成する際によく書いてしまうバグを紹介します。

プログラムプログラム:

 #include  <stdio.h>
 #include  <Windows.h>

 int main(int argc, char *argv[])
 {
    // GetTempPath APIでテンポラリファイル用のディレクトリパスを取得
    char lpszTempPath[MAX_PATH];
    if( ::GetTempPath(MAX_PATH, lpszTempPath) == 0 ) {
        return -1;
    }

    // 一時ファイルの作成
    char lpszTempFileName[MAX_PATH];
    if( ::GetTempFileName(lpszTempPath, "tmp", 1, lpszTempFileName) == 0 ) {
        return -1;
    }

    // 処理

    // 一時ファイルの削除
    ::DeleteFile(lpszTempFileName);

    return 0;
 }

このプログラムにどのような一時ファイル操作関連のバグがあると思いますか?



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

バグ : パスが決まっているファイルを開く

Posted: 2012年04月04日

パスが決まっているファイルを開くプログラムでよく書いてしまうバグを紹介します。
パスが決まっているファイルとは、
Windowsのファイル(cmd.exe等)や、設定ファイル(???.ini等)

プログラムプログラム:

 #include  <stdio.h>

 int main(int argc, char *argv[])
 {
    char *pstrFilePath = ".setting.ini";
    std::ifstream istream(pstrFilePath, std::ios::in);
    if (istream.fail() == true) {
        // ファイルのオープンに失敗
        return -1;
    }

    // 読み込み処理

    istream.close();

    return 0;
 }

このプログラムにどのようなファイル操作関連のバグがあると思いますか?



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

バグ : ファイルを上書きする

Posted: 2012年03月23日

ファイルを上書きするプログラムでよく書いてしまうバグを紹介します。

プログラムプログラム:

 #include  <stdio.h>

 int main(int argc, char *argv[])
 {
    std::ofstream ostream(argv[1], std::ios::out);
    if (ostream.fail() == true) {
        // ファイルのオープンに失敗
        return -1;
    }

    // 書き込み処理
    for (int nIndex = 1; nIndex < argc; nIndex++) {
        ostream.write(argv[nIndex], strlen(argv[nIndex]));
    }

    ostream.close();

    return 0;
 }

このプログラムにどのようなファイル操作関連のバグがあると思いますか?



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

バグ : ファイルの属性を変更する

Posted: 2011年10月06日

ファイルの属性を変更する際のバグを紹介します。

具体的にファイルの属性とは、
読み取り専用や、隠しファイル、所有者などです。

プログラムプログラム:

 #include  <stdio.h>
 #include  <unistd.h>

 int main(int argc, char *argv[])
 {
    if (access(argv[1], 1) != 0) {
        // ファイルへアクセス権がない、ファイルが存在しない
        return -1;
    }

    SetFileAttributes(argv[1], FILE_ATTRIBUTE_HIDDEN);

    return 0;
 }

このプログラムにどのようなファイル操作関連のバグがあると思いますか?



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

バグ : ファイルに書きこむ

Posted: 2011年09月03日

前回変数がプログラムの説明で出てきましたが
変数って一体何なんでしょうか?

変数と聞いて数学の変数を思い出す方もいるのではないでしょうか。
大まかなイメージは同じですが全く同じ物と思っていると、
泥沼に突っ込んでしまうので気をつけてください。

Wikipedia
変数 (数学)
変数 (プログラミング)

プログラミングの変数とは、
よく言われる喩えは、データを入れる箱(領域)です。
どういうことか以下のプログラムを見てください。

プログラムプログラム:

 #include  <stdio.h>

 int main(void)
 {
     int nResult = 0;
     nResult = 2;
     nResult = nResult * 5 + 3;
     nResult = nResult * -1;

     return 0;
 }



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

バグ : ファイルを開く

Posted: 2011年08月30日

ファイルを開くプログラムでよく書いてしまうバグを紹介します。

プログラムプログラム:

 #include <fstream>

 int main(int argc, char *argv[])
 {
    std::ofstream ostream(argv[1]);

    //
    // 書き込み処理
    //

    ostream.close();

    return 0;
 }

このプログラムにどのようなファイル操作関連のバグがあると思いますか?



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