ВУЗ:
Составители:
6
O_EXCL - используется совместно с флагом O_CREAT, в этом случае по-
пытка создать файл, если он уже существует, оканчивается неудачей.
Третий параметр необходим только при создании нового файла, обычно он
задается в виде восьмеричной константы и определяет права доступа к этому
файлу.
После успешного открытия файла функция возвращает значение дескрип-
тора
файла.
Чтение данных выполняется с использованием функций из библиотеки
языка Си. В частности, для чтения можно использовать функцию:
ssize_t read(int fdes, char *buf, size_t count);
Запись в файл может выполняться по функции:
ssize_t write(int fdes, char *buf, size_t count);
В качестве первого параметра используется дескриптор файла. Второй па-
раметр указывает на буфер обмена. Третий параметр - длина буфера. При нор-
мальном завершении возвращаемое значение
должно совпадать со значением
третьего параметра.
Закрывается файл функцией
int close(int fdes);
аргументом функции является дескриптор соответствующего файла.
Рассмотрим простой пример копирования данных из одного файла в новый
файл.
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <unistd.h>
int main()
{
int fdIn; //Входной файл
int fdOut; //Выходной файл
char buf[256]; //Буфер обмена
char InName[20], OutName[20]; //Имена файлов
ssize_t nRd;
// Ввод имен входного и выходного файлов
printf("Имя входного файла -> ");
gets(InName);
printf("Имя выходного файла
-> ");
gets(OutName);
// Открытие файлов
if((fdIn=open(InName, O_RDONLY))==-1){
perror("Ошибка открытия входного файла");
_exit(-1);
O_EXCL - используется совместно с флагом O_CREAT, в этом случае по- пытка создать файл, если он уже существует, оканчивается неудачей. Третий параметр необходим только при создании нового файла, обычно он задается в виде восьмеричной константы и определяет права доступа к этому файлу. После успешного открытия файла функция возвращает значение дескрип- тора файла. Чтение данных выполняется с использованием функций из библиотеки языка Си. В частности, для чтения можно использовать функцию: ssize_t read(int fdes, char *buf, size_t count); Запись в файл может выполняться по функции: ssize_t write(int fdes, char *buf, size_t count); В качестве первого параметра используется дескриптор файла. Второй па- раметр указывает на буфер обмена. Третий параметр - длина буфера. При нор- мальном завершении возвращаемое значение должно совпадать со значением третьего параметра. Закрывается файл функцией int close(int fdes); аргументом функции является дескриптор соответствующего файла. Рассмотрим простой пример копирования данных из одного файла в новый файл. #include#include #include #include #include #include int main() { int fdIn; //Входной файл int fdOut; //Выходной файл char buf[256]; //Буфер обмена char InName[20], OutName[20]; //Имена файлов ssize_t nRd; // Ввод имен входного и выходного файлов printf("Имя входного файла -> "); gets(InName); printf("Имя выходного файла -> "); gets(OutName); // Открытие файлов if((fdIn=open(InName, O_RDONLY))==-1){ perror("Ошибка открытия входного файла"); _exit(-1); 6
Страницы
- « первая
- ‹ предыдущая
- …
- 4
- 5
- 6
- 7
- 8
- …
- следующая ›
- последняя »