ファイルの状態を取得するシステムコールについて

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

ファイルの状態を取得するシステムコールについて

#1

投稿記事 by nanami » 14年前

c言語で ls -al と同じ結果を表示するプログラムを作りたいのですが rwx などのアクセス権限をどうしたら表示させることが出来るのか
わかりません。どうか教えていただけないでしょうか。

Poco
記事: 161
登録日時: 15年前

Re: ファイルの状態を取得するシステムコールについて

#2

投稿記事 by Poco » 14年前

stat/fstatシステムコールが使えませんか?

nanami

Re: ファイルの状態を取得するシステムコールについて

#3

投稿記事 by nanami » 14年前

すみません,,,,
まるなげにしていました。
lsのプログラムなら作成できたのですが、statのmodeからの持ってきかたがわからないんです

1: #include <stdio.h>
2: #include <stdlib.h>
3: #include <dirent.h>
4: #include <sys/types.h>
5: #include <sys/stat.h>
6:
7: int main( int argc, char *argv[] )
8: {
9: char *dir;
10: DIR *dp;
11: struct dirent *entry;
12: struct stat statbuf;
13:
14: if(argc<2){
15: dir = getenv("PWD");
16: }else{
17: dir = argv[1];
18: }
19:
20: if(( dp = opendir(dir) ) == NULL ){
21: perror("opendir");
22: exit( EXIT_FAILURE );
23: }
24:
25: while((entry = readdir(dp)) != NULL){
26: stat(entry->d_name, &statbuf);
27: if(S_ISDIR(statbuf.st_mode)){
28: fprintf(stdout, "%s/\n", entry->d_name);
29: }else{
30: fprintf(stdout, "%s\n", entry->d_name);
31: }
32: }
33:
34: closedir(dp);
35:
36: return(0);
37: }

Poco
記事: 161
登録日時: 15年前

Re: ファイルの状態を取得するシステムコールについて

#4

投稿記事 by Poco » 14年前

以下のURLにあるst_mode フィールドの説明が参考になりませんか?
http://kazmax.zpp.jp/cmd/s/stat.2.html

以下のような感じのソースになるんですかねえ。。

stat(entry->d_name, &statbuf);
if ( statbuf.st_mode & S_IRGRP ) {
// グループの読み込み権があれば、、、
}

nanami

Re: ファイルの状態を取得するシステムコールについて

#5

投稿記事 by nanami » 14年前

ありがとうごじます^^
がんばってみます。

閉鎖

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