Работа с интерфейсом прикладного программирования операционной системы Linux. Шашков Б.Д. - 6 стр.

UptoLike

Составители: 

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