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

/* Файл открывается для чтения / записи */

if ((filedes=open(workfile, O_RDWR)) = = -1)

{

printf (“Невозможно открыть %s\n”, workfile);

exit (1); /* Выход по ошибке */

}

/* Остальная программа */

exit (0); /* Нормальный выход */

}

Вызов open может использоваться для создания файла, например:

filedes = open (“/tmp/newfile”, O_WRONLY | O_CREAT, 0644);

Здесь объединены флаги O_CREAT и O_WRONLY, задающие создание файла /tmp/newfile при помощи вызова open. Если /tmp/newfile не существует, то будет создан файл нулевой длины с таким именем и открыт только для записи.

Параметр mode содержит число, определяющее права доступа к файлу, указывающие, кто из пользователей системы может осуществлять чтение, запись или выполнение файла. Пользователь, создавший файл, может выполнять чтение из файла и запись в него. Остальные пользователи будут иметь доступ только для чтения файла.

Следующая программа создаёт файл newfile в текущем каталоге:

# include <stdlib.h>

# include <fcnt1.h>

#define PERMS 0644 /* Права доступа при открытии с O_CREAT */

char *filename=”newfile”;

main()

{

int filedes;

if ((filedes=open (filename, O_RDWR | O_CREAT, PERMS)) = = -1)

{

printf (“Невозможно открыть %s\n”, filename);

exit (1); /* Выход по ошибке */

}

/* Остальная программа */

exit (0);

}

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