|
��������
directory: opendir, readdir, telldir, seekdir,
rewinddir, closedir - �������� ��� ����������
���������
#include <sys/types.h> #include <dirent.h> DIR *opendir (filename) char *filename; struct dirent *readdir (dirp) DIR *dirp; long telldir (dirp) DIR *dirp; void seekdir (dirp, loc) DIR *dirp; long loc; void rewinddir (dirp) DIR *dirp; void closedir (dirp) DIR *dirp;
��������
������� opendir ��������� ������� � ������ filename �
��������� � ��� ����� ��������. Opendir ���������� �
�������� ���������� ���������, ������� ������������ �
����������� ��������� ��� ������������� ������ ��������. ������ ��������� ������������, ���� ���� filename
�� �������� ��� �� �������� ���������, ����, ���� ������� malloc(1M) �� ����� �������� ������������ �� ���
������ ��� ��������� ���� DIR ��� ��� �������.
������� readdir ������ ��������� �� ��������� �������� ������� ��������. ��������� �� ���������� �������� �������� �� ��������. ��� ���������� ����� �������� ��� ��� ��������� ������������ ������� � �������� ������������ ������ ���������.
������� telldir ������ ������� ������� � ��������� ������ ��������.
������� seekdir ������������� ������� ��� ����������� �������� readdir ��� ������� ��������. ������ ������� ��������� � ���, ������� ���� �������� � ���������� ���������� �������� telldir, ����������� loc. ��������, ������� ���������� telldir, ��������� ������ � ��� ������, ���� ������� �� �������� � �� ����������. ����� �������� �� ��������� � ������ ������ 5, �� ����� ���������� ��� ��������� ������ ����� �������� ������.
�������� rewinddir ����������������� � ������ ������� � ��������� ������ ��������.
�������� closedir ��������� ��������� ����� �������� � ����������� ��������� DIR.
��� ���������� ������������� �������� ����� ���������� ��������� ������:
opendir:
[ENOTDIR] | ��������� ����������� ����� filename �� �������� ���������. |
---|---|
[EACCES] | ��� ���������� ����������� ����� filename ����������� ����� �� �����. |
[EMFILE] | ����� ��������� ����������� ���������� ����� ���������� ������. |
[EFAULT] | �������� filename ��������� �� ������� ����������� �������� ��������� ������������. |
readdir:
[ENOENT] | ������� ������� �������� �� ������������� ����������� ��������. |
---|---|
[EBADF] | ��������� �����, ������������ ���������� dirp, � ������ ������ �����������. ��������� ������� - ����� ��� ������. |
[EBADF] | ��������� �����, ������������ ���������� dirp, � ������ ������ �����������. ��������� ������� - ����� ��� ������. |
---|
������
�������� �������� ��������� ��� ������ � �������� �������� name:
dirp = opendir ("."); while ((dp = readdir (dirp)) != NULL) if (strcmp (dp->d_name, name) == 0) { closedir (dirp); return FOUND; } closedir (dirp); return NOT_FOUND;
��. �����
getdents(2), dirent(4).
���������������
Rewinddir ���������� ��� ������, ������� � ���� ������
��������� �������� ���������� ������ �������.
|