Назад

Содержание

Вперед


1.4.3. Создание и уничтожение файлов. Получение информации о файлах.

    Для создания обычных файлов используется системный вызов creat( ):

#include <sys/types.h>
#include <sys/stat.h>
#include <fcnt1.h>

int creat (char *path, mode_t mode);

    Аргументы функции: path - имя файла, mode - задает атрибуты создаваемого файла (см. описание системного вызова mkdir( ) в предыдущем разделе).

    Специальные файлы, соответствующие устройствам, обычно располагаются в директории "/dev". Создать их можно системным вызовом mknod( ):

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

int mknod (char *path, mode_t, dev_t dev);

Аргумент mode задает права доступа к файлу. deu представляет собой структуру, задающую тип и номер устройства, соответствующего специальному файлу.

Когда файл более не нужен, его можно удалить с помощью функции unlink ( ):

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int unlink (char *path);

где path - имя файла. Последний должен быть закрыт.

Чтобы получить информацию о наборе данных, в UNIX предусмотрена функция stat( ):

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

int stat (char *path, struct stat *fstat);

Она по имени файла path находит соответствующую информацию и помешает ее в структуру, на которую указывает fstat. Среди полей структуры stat особый интерес представляют следующие:

st_mode - тип файла; это комбинация флагов:
S_IFDIR - каталог;
S_IFCHR - символьно-ориентированное устройство;
S_IFBLK - блочно-ориентированное устройство;
S_IFREG - обычный файл;
st_uid - идентификатор владельца файла;
st_gid - идентификатор группы, которой принадлежит владелец файла;
st_size - размер файла;
st_atime - время последнего использования;
st_mtime - время последней модификации.