statを使ったプログラム

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
もち

statを使ったプログラム

#1

投稿記事 by もち » 13年前

コード:

#include <stdio.h>
#include <dirent.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/stat.h>
#include <time.h>

void main() {
  struct dirent *r_dir;
  struct stat *sta;

  DIR *dir = opendir(".");
  printf("--- この directory の内容を表示 ---\n");
  while((r_dir = readdir(dir)) != NULL) {
    if(r_dir->d_ino == 0) continue;
    printf(" i-node 番号:%ld, ファイル名:%s\n", r_dir->d_ino, r_dir->d_name);
  }
  printf("\n");
  closedir(dir);

  if(stat("r.c", sta) == 0) {
    printf("--- r.c の i-node 内容を表示 ---\n");
    printf(" i-node 番号:%ld\n", (long)sta->st_ino);
    printf(" アクセス/ファイル種別:%X\n", (int)sta->st_mode);
    printf(" 共有数:%d\n", (int)sta->st_nlink);
    printf(" 所有者 ID:%d\n", (int)sta->st_uid);
    printf(" グループ ID:%d\n", (int)sta->st_gid);
    printf(" ファイルサイズ:%ld\n", (long)sta->st_size);
    printf(" 最終アクセス秒:%ld\n", (long)sta->st_atime);
    printf(" 最終書き込み秒:%ld\n", (long)sta->st_mtime);
    printf(" 最終書き込み年月日時刻:%s",  ctime(&sta->st_mtime));
  }
}
カレントディレクトリの各ファイルとそのなかにあるr.cの
詳細を出力するプログラムです。
statでエラーが帰ってきてしまいます。どこがいけないんでしょうか・・・

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: statを使ったプログラム

#2

投稿記事 by h2so5 » 13年前

statの第二引数に渡すポインタは有効な領域を指している必要があります。
初期化されていないポインタを渡してはいけません。

閉鎖

“C言語何でも質問掲示板” へ戻る