Обнуляем маску создания файлов текущего
/*Программа 05-1.с, иллюстрирующая использование системных вызовов
open(), write() и close() для записи информации в файл */
#include
#include
#include
int main(){
int fd;
size_t size;
char string[] = "Hello, world!";
/* Обнуляем маску создания файлов текущего процесса для того,
чтобы права доступа у создаваемого файла точно соответствовали
чпараметру вызова open() */
(void)umask(0);
/* Попытаемся открыть файл с именем myfile в текущей директории
только для операций вывода. Если файла не существует, попробуем
его создать с правами доступа 0666, т. е. read-write для всех
категорий пользователей */
if((fd = open("myfile", O_WRONLY | O_CREAT,
0666)) < 0){
/* Если файл открыть не удалось, печатаем об этом сообщение
и прекращаем работу */
printf("Can\'t open file\n");
exit(-1);
}
/* Пробуем записать в файл 14 байт из нашего массива, т.е. всю
строку "Hello, world!" вместе с признаком конца
строки */
size = write(fd, string, 14);
if(size != 14){
/* Если записалось меньшее количество байт, сообщаем об
ошибке */
printf("Can\'t write all string\n");
exit(-1);
}
/* Закрываем файл */
if(close(fd) < 0){
printf("Can\'t close file\n");
}
return 0;
}
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий