Unix-system-calls-getdents
[top]#
[[File:]]
[[File:]] |
|Web |This Site
- 初心者向けのUnix *
- Unix-ホーム
- Unix-はじめに
- Unix-ファイル管理
- Unix-ディレクトリ
- Unix-ファイル権限
- Unix-環境
- Unix-基本ユーティリティ
- Unix-パイプとフィルタ
- Unix-プロセス
- Unix-コミュニケーション
- Unix-The Vi Editor
- Unix Shellプログラミング*
- Unix-シェルとは?
- Unix-変数の使用
- Unix-特殊変数
- Unix-配列の使用
- Unix-基本的な演算子
- Unix-意思決定
- Unix-シェルループ
- Unix-ループ制御
- Unix-シェル置換
- Unix-引用メカニズム
- Unix-IOリダイレクト
- UNIX-シェル関数
- Unix-マンページヘルプ
- 高度なUnix *
- Unix-正規表現
- Unix-ファイルシステムの基本
- Unix-ユーザー管理
- Unix-システムパフォーマンス
- Unix-システムログ
- Unix-信号とトラップ
- Unixの便利なリファレンス*
- Unix-便利なコマンド
- Unix-クイックガイド
- Unix-組み込み関数
- Unix-システムコール
- Unix-コマンドリスト
- Unixの役立つリソース*
- Unix役立つリソース
選択した読書
- http://www.finddevguides.com/computer_glossary [コンピュータ用語集] *http://www.finddevguides.com/computer_whoiswho[Who is Who]
Copyright©2014 by finddevguides
Home | References | Discussion Forums | About TP |
getdents()-Unix、Linuxシステムコール
[[File:]] image :http://www.finddevguides.com/images/next.gif [next] image:http://www.finddevguides.com/add- this.gif [AddThisソーシャルブックマークボタン]
広告
NAME
getdents-ディレクトリエントリを取得する
概要
#include <unistd.h> #include <linux/types.h> #include <linux/dirent.h> #include <linux/unistd.h> #include <errno.h> int getdents(unsigned int fd, struct dirent* dirp, unsigned int count); |
説明
これはあなたが興味を持っている機能ではありません。 POSIX準拠のCライブラリインターフェイスについては、 readdir (3)を参照してください。 このページには、裸のカーネルシステムコールインターフェイスが記載されています。
システムコール getdents ()は、_fd_が指すディレクトリから_dirp_が指すメモリ領域にいくつかの_dirent_構造体を読み取ります。 パラメータ_count_は、メモリ領域のサイズです。
_dirent_構造体は次のように宣言されます。
struct dirent { long d_ino; /*inode number*/ off_t d_off; /*offset to next dirent*/ unsigned short d_reclen; /*length of this dirent*/ char d_name [NAME_MAX+1]; /*filename (null-terminated)*/ } |
_d_ino_はiノード番号です。 _d_off_は、ディレクトリの先頭から次の_dirent_の先頭までの距離です。 _d_reclen_は、_dirent_全体のサイズです。 _d_name_は、ヌルで終わるファイル名です。
この呼び出しは readdir (2)に優先します。
返り値
成功すると、読み込んだバイト数が返されます。 ディレクトリの最後に0が返されます。 エラーの場合、-1が返され、_errno_が適切に設定されます。
エラー
Tag
説明
*EBADF*
無効なファイル記述子_fd_。
*EFAULT*
引数が呼び出しプロセスのアドレス空間の外側を指している。
*EINVAL*
結果バッファが小さすぎます。
*ENOENT*
そのようなディレクトリはありません。
*ENOTDIR*
ファイル記述子はディレクトリを参照していません。
準拠
SVr4。
ノート
Glibcはこのシステムコールのラッパーを提供しません。 syscall (2)を使用して呼び出します。
関連項目
[[File:]] image :http://www.finddevguides.com/images/next.gif [next] [[File:]]
広告
Advertisements |