tail head cat sleep
QR code linking to this page

manページ  — SCANDIR

名称

scandir, alphasort – ディレクトリを走査する

内容

ライブラリ

Standard C Library (libc, -lc)

書式

#include <sys/types.h>
#include <dirent.h>

int
scandir(const char *dirname, struct dirent ***namelist, int σelectstruct dirent *, int ξompar&#169;nst void *, const void *);

int
alphasort(const void *d1, const void *d2);

解説

scandir() 関数はディレクトリ dirname を読み取り、 malloc(3) を使用してディレクトリエントリを指すポインタの配列を作成します。 そして配列内のエントリの数を返します。 ディレクトリエントリの配列を指すポインタは、 namelist が参照する位置に保存されます。

select パラメータは、どのエントリを配列に入れるかを選択するために scandir() によって呼び出される、ユーザ定義サブルーチンを指すポインタです。 選択ルーチンにはディレクトリエントリを指すポインタが渡されます。 また、ディレクトリエントリを配列に入れる場合は非 0 の値を返さなくてはなりません。 select が NULL の場合、すべてのディレクトリエントリが組み入れられます。

compar パラメータは、ユーザ定義サブルーチンを指すポインタであり、 このサブルーチンは完成した配列をソートするために qsort(3) に渡されます。このポインタが NULL の場合、配列はソートされません。

alphasort() 関数は、 compar パラメータに使用できるルーチンで、配列をアルファベット順にソートします。

配列用に割当てられたメモリを free(3) で割当て解除できます。その場合、 配列内の各ポインタを解放してから、配列自体を解放してください。

診断

ディレクトリが読み取り用に開けない場合、または malloc(3) がすべてのデータ構造を保持するのに十分なメモリを割り当てできない場合は -1 を返します。

関連項目

directory(3), malloc(3), qsort(3), dir(5)

歴史

scandir()alphasort() 関数は BSD 4.2 で登場しました。

SCANDIR (3) June 4, 1993

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

With features like these, who needs bugs?
— Henry Spencer