Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 июля!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Давно заметил, что всё-таки языки С/C++ это не самый лучший вариант программирования под Windows. Сейчас появилась масса более современных и удобных языков, например тот же Python - кроссплатформенный язык, очень легок в изучение. Я его изучил буквально за несколько дней по этому курсу - ссылка. Автор постарался, там видеоуроки на удивление легкие и понятные.

Функция Открывает файл для чтения или записи.

 
 
 
 Синтаксис          #include <fcntl.h>
 
                    #include <sys\stat.h>
 
                    int open(const char *filename, int access
 
                                   [, unsigned mode]);
 
 
 
 Файл, содержащий   io.h
 
 прототип
 
 
 
 Описание           Функция open    открывает    файл,   имя   которого
 
                    определено параметром  filename,  и  подготавливает
 
                    его к последующим операциям чтения и/или записи,  в
 
                    зависимости от параметра access.
 
 
 
                    Для создания  файла  в  обычном  режиме,  вы можете
 
                    присвоить соответствующее значение _fmode,  или при
 
                    открытии  файла  указать  опции  O_CREAT  и O_TRUNC
 
                    связанные операцией побитового логического сложения
 
                    (OR) с необходимым режимом передачи. К примеру:
 
 
 
                       open("xmp",O_CREAT|O_TRUNC|O_BINARY,S_IREAD);
 
 
 
                    создает двоичный файл с атрибутом только для чтения
 
                    с именем XMP, причем, если он уже существует, то он
 
                    обрезается до нулевой длины.
 
 
 
                    Для функции  open  параметр  access  конструируется
 
                    путем  логического  побитового   сложения   флагов,
 
                    перечисленных в двух следующих списках.  Из первого
 
                    списка может быть  использован  только  один  флаг;
 
                    остальные   флаги   могут   применяться   в   любых
 
                    логических комбинациях.
 
 
 
                    Список 1: флаги чтения/записи.
 
 
 
                    O_RDONLY   открытие только для чтения.
 
                    O_WRONLY   открытие только для записи.
 
                    O_RDWR     открытие для чтения и записи.
 
 
 
 
 
                    Список 2: остальные флаги доступа.
 
 
 
                    O_NDELAY   Не используется; для совместимости с
 
                               системой UNIX.
 
                    O_APPEND   Если флажок установлен, то перед каждой
 
                               операцией записи, указатель файла бу-
 
                               дет устанавливаться на конец файла.
 
                    O_CREAT    Если файл существует, этот флажок не
 
                               имеет никакого значения. Если файл не
 
                               существует, он будет создан, и биты из
 
                               аргумента mode будут использованы
 
                               для установки битов-атрибутов файла,
 
                               как и в функции chmod.
 
                    O_TRUNC    Если файл существует, его длина усека-
 
                               ется до 0. Атрибуты файла остаются не-
 
                               изменными.
 
                    O_EXCL     Используется только вместе с O_CREAT.
 
                               Если файл уже существует, то происходит
 
                               возврат по ошибке.
 
                    O_BINARY   Данный флаг может быть установлен для
 
                               гарантированного открытия файла в
 
                               двоичном режиме.
 
                    O_TEXT     Данный флаг может быть установлен для
 
                               гарантированного открытия файла в текс-
 
                               товом режиме.
 
 
 
                    Эти константы (O_...) определены в файле fcntl.h.
 
 
 
                    Если ни   O_BINARY,  ни  O_TEXT  не  указаны,  файл
 
                    открывается  в  режиме  трансляции,  соответственно
 
                    глобальной переменной _fmode.
 
 
 
                    Если в  построении  параметра access участвует флаг
 
                    O_CREAT,  вам необходимо указать аргумент  mode  из
 
                    следующих  символических  констант,  определенных в
 
                    файле sys\stat.h.
 
 
 
                    --------------------------------------------------
 
                    Значение параметра    Возможности доступа
 
                    mode
 
                    --------------------------------------------------
 
                    S_IWRITE              Разрешение на запись.
 
                    S_IREAD               Разрешение на чтение.
 
                    S_IREAD|S_IWRITE      Разрешение на чтение/запись.
 
                    --------------------------------------------------
 
 
 
 Возвращаемое       При успешном завершении open возвращает целое
 
 значение           неотрицательное число handle - логический номер
 
                    открытого файла.    Указатель   файла   (указатель
 
                    текущей позиции) устанавливается на начало  файла.
 
                    При  ошибке  функция  возвращает  значение  -1,  и
 
                    переменная  errno  получает  одно   из   следующих
 
                    значений:
 
 
 
                    ENOENT - Маршрут или имя файла не найдены.
 
                    EMFILE - Слишком много открытых файлов.
 
                    EACCES - Доступ запрещен.
 
                    EINVACC - Неверный код доступа.
 
 
 
 Переносимость      Функция open поддерживается на системах UNIX.
 
                    На версии  7  системы  UNIX  мнемоника  O_тип   не
 
                    определена. Система UNIX SYSTEM 3 пользуется всеми
 
                    мнемониками O_тип за исключением O_BINARY.
 
 
 
 Смотрите также     chmod, chsize, close, _creat, creat, creatnew,
 
                    creattemp, dup, dup2, fdopen, filelenth, fopen,
 
                    freopen, gettime, lseek, lock, _open, read,
 
                    sopen, _write, write.
 
 
 
 Пример:
 
 
 
 #include <string.h>
 
 #include <stdio.h>
 
 #include <fcntl.h>
 
 #include <io.h>
 
 
 
 int main(void)
 
 {
 
    int handle;
 
    char msg[] = "Hello world!";
 
    if((handle = open("TEST.$$$",O_RDWR)) == -1) {
 
       perror("Error:");
 
       return 1;
 
    }
 
    _write(handle,msg,strlen(msg));
 
    _close(Handle);
 
    return 0;
 
 }
 
 


<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS