プログラミングの部屋  ▲前 へ ▼次 へ 一覧へ戻る  プログラミングの部屋 メニューへ  WebBoard総合メニューへ
この投稿に対し、フォローを投稿する
日 時'04年12月12日 23:50:15
タイトルRe(1):Windowsのファイル読み込みについて (閲覧回数:1433回)
投稿者(^_^;)さん 

>[12月10日 16:28 初心者さんの投稿]
>Windowsのスタートアップフォルダへプログラムを置いて、起動時に、c:\Windows\SYSTEM.INI
>ファイルを読み込み内容を調べるプログラムを作っています。
>SYSTEM.INIのファイルが予想した内容と違う場合は、SYSTEM.INIを修正するプログラムを起動
>しSYSTEM.INIの内容を書き換える処理を行いたいのです。
>以下のソースは今作っているソースでは、実行時にエラーが出ます。コンパイルは通ります。
>また、今回Cで作っているのですが、他の言語でもっと簡単にできないですか?
>
>#include
>#include
>#include
>
>main()
>{
>    FILE *fp;
>    char system_ini[56];
>    fp=NULL;
>
>    fp = fopen("C:\\Windows\\SYSTEM.INI","r");
>    if(fp == NULL){
>      printf("Not System.ini File\n");
>      return 1;
>    }
>    /* ファイルの読み込み */
>    while(fgets(system_ini,sizeof(system_ini),fp) != NULL){
>      /* "shell="の文字列がある行を検査 */
>      if(strncmp(system_ini,"shell=",6) == 0 ){
>        /* ファイルが正常な場合 */
>        if(strcmp(system_ini,"shell=shshell.exe") == 0)
>          return 0;
>        /* ファイル内容が不正な場合(ここで、外部の実行ファイルを起動 */
>        else{
>          printf("sfshell.exe が設定されていません。\n");
>          /* 修正プログラムの実行処理を入れる予定 */
>        }
>      }
>      else{
>        memcpy(system_ini,0x00,sizeof(system_ini));
>      }
>    }
>    return 2;
>}
>

次の行は不要です。

>    fp=NULL;

そしてmemcpyよりもmemsetを使う方がよいかと思います。

そして最後にfclose(fp);を忘れずに!
フォロー元の投稿
 ◆[12/10 16:28] Windowsのファイル読み込みについて // 初心者さん
<この投稿に対するフォローはありません>