バグ:環境変数が含まれる文字列の扱い

Posted: 2013年03月25日

文字列中に環境変数が存在する文字列の扱い方を間違えてよく書いてしまうバグを紹介します。
通常は、気が付くレベルの問題のため
そこまで深刻な問題にはならないですが取り上げます。

プログラムプログラム:

 #include <stdio.h>
 $include <winbase.h>

 int main(int argc, char *argv[])
 {
    const TCHAR *pszSrc = _T("%PROGRAMFILES%Microsoft");
    TCHAR szExpandPath[MAX_PATH];
    DWORD nExpandPathSize = sizeof(szExpandPath) / sizeof(TCHAR);

    // 環境変数を展開
    ExpandEnvironmentStrings(pszSrc, szExpandPath, nExpandPathSize);

    // 処理

    return 0;
 }

このプログラムにどのように文字列中に環境変数が存在する文字列の扱い方を間違えていると思いますか?



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

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

Posted: 2013年03月21日

前回は、printaname関数を解説してきました。
今回はprintaname関数が表示処理に用いているcolortype関数を解説していきます。



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

バグ:ファイルパス文字列の操作

Posted: 2013年03月18日

ファイルパス文字列の操作でよく書いてしまうバグを紹介します。

プログラムプログラム:

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

 int main(int argc, char *argv[])
 {
    CString strFolderPath = _T("C:WindowsSystem32");
    CString strFileName = _T("cmd.exe");

    // 連結
    CString strCmdPath = strFolderPath + strFilePath;

    // 処理

    return 0;
 }

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



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

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

Posted: 2013年03月14日

前回は、printscol関数を解説してきました。
今回はprintscol関数が表示処理に用いているprintaname関数を解説していきます。



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

バグ:文字列を返却する関数

Posted: 2013年03月11日

文字列の返却する関数処理でよく書いてしまうバグを紹介します。
最近よくある話題ですが
処理としては問題ないけど、それで大丈夫?なコードです。

プログラムプログラム:

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

 CString GetLoginUserName()
 {
  CString strUserName;

  // 処理

  return strUserName;
 }

 int main(int argc, char *argv[])
 {
    CString strUserName = GetLoginUserName();

    return 0;
 }

このプログラムにどのような文字列の長さ取得処理のバグがあると思いますか?



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

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

Posted: 2013年03月07日

前回は、display関数を解説してきました。
今回はdisplay関数が表示処理に用いているprintscol関数を解説していきます。



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

バグ:文字列の連結で問題はありますか?Java編

Posted: 2013年03月04日

文字列操作(連結)で書いてしまうバグを紹介します。
わかりづらいですが今回はJava編です。

プログラムプログラム:

 public static void main(string []args)
 {
    string src = " ABCDEFG";

    for (int index = 0; index < 100; index++) {
        src += "HIJK";
    }

    // 処理
 }

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



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

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

Posted: 2013年02月28日

前回は、traverse関数を解説してきました。
今回はtraverse関数が表示処理に用いているdisplay関数を解説していきます。



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

バグ:ファイルパスをコピーしたため間違っていませんけど

Posted: 2013年02月25日

文字列操作?エスケープ文字列で書いてしまうバグを紹介します。

プログラムプログラム:

 #include <stdio.h>

 int main(int argc, char *argv[])
 {
    CString strSrc = _T("C:temp"); // 全角空白

    // 処理

    return 0;
 }

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



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

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

Posted: 2013年02月21日

前回は、main関数を解説してきました。
main関数では、コマンドの引数解析を主に行って来ましたが
今回はmain関数が最後に処理を行うtraverseを解説していきます。



カテゴリー: プログラム, 入門 | タグ: , , | コメント無し »
Page 6 of 13« First2345678910Last »