Статья: Теория вычислительных процессов и структур

int closedir( DIR *dirptr);

Пример вызова:

if ((d= opendir (“/home/s1”))==NULL) /* ошибка открытия */ exit(1);

Передаваемый вызову opendir параметр является именем открываемого каталога. При успешном открытии каталога dirname вызов opendir возвращает указатель на переменную типа DIR. Определение типа DIR, представляющего дескриптор открытого каталога, находится в заголовочном файле “dirent.h”.

В частности, поле name структуры DIR содержит запись имени файла, содержащегося в каталоге:

DIR *d;

ff=d->name ;

printf(“%s\n”, ff);

Указатель позиции ввода/вывода после открытия каталога устанавливается на первую запись каталога. При неуспешном открытии функция возвращает значение NULL. После завершения работы с каталогом необходимо его закрыть вызовом closedir.

Для чтения записей каталога существует вызов:

struct dirent *readdir(DIR *dirptr);

Пример вызова:

DIR *dp;

struct dirent *d;

d=readdir(dp);

При первом вызове функции readdir в структуру dirent будет считана первая запись каталога. После прочтения всего каталога в результате последующих вызовов readdir будет возвращено значение NULL.

Для возврата указателя в начало каталога на первую запись существует вызов:

void rewindir(DIR *dirptr);

Чтобы получить имя текущего рабочего каталога существует функция:

char *getcwd(char *name, size_t size);

В переменную name при успешном вызове будут помещено имя текущего рабочего каталога:

char name1[255];

if (getcwd(name1, 255)==NULL) perror(“ошибка вызова”)

else printf(“текущий каталог=%s”,name1);

Вызов:

int chdir(const char *path);

изменяет текущий рабочий каталог на каталог path.

Системные вызовы stat и fstat позволяют процессу определить значения свойств в существующем файле:

#include <sys/types.h>

К-во Просмотров: 563
Бесплатно скачать Статья: Теория вычислительных процессов и структур