スポンサーリンク

ファイルシステムのディレクトリのファイルの一覧を表示するには、
FreeBSDやLinuxなどのUNIX系OSでは、lsコマンドを使用します。

ディレクトリ情報は、dirent(directory file format)に入っています。
ディレクトリ情報 dirent を読み出すには、3つのシステムコールがあります。
  • opendir- ディレクトリをオープンする
  • readdir- ディレクトリエントリを読み出す
  • closedir- ディレクトリをクローズする
ファイルをオープンして、内容を読み出して、ファイルをクローズするのと
同じイメージです。

カレントディレクトリのディレクトリ情報を読み出して、
ただ、表示するだけのCプログラムです。

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

int main(int argc, char *argv[])
{
  DIR *dp;
  struct dirent *dir;
  char *path = ".";

  if((dp = opendir(path)) == NULL ){
    perror("Can't open direcotry");
    exit(1);
  }

  while((dir = readdir(dp)) != NULL){
    if(dir->d_ino == 0){   /* skip remove file */
      continue;
    }
    (void)printf("%s\n", dir->d_name);
  }

  (void)closedir(dp);

  exit(0);
}

コンパイル方法

cc ls.c


実行方法

./a.out

参照しているページ (サイト内): [2007-10-01-1]

スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

スポンサーリンク
 

過去ログ

2020 : 01 02 03 04 05 06 07 08 09 10 11 12
2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー