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

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


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

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



Возможности языков семейства Си по истине безграничны, однако, в этой свободе кроются и недостатки: всегда нужно программисту держать ухо востро и контроллировать "переполнение буфера", чтобы потом программа не вылетала в "синий экран" на массе разнообразных версий Windows и железа у пользователей. Те же крэкеры и реверсеры специально ищут в коде программ на Си уязвимости, куда можно подсадить любой вирусный код, об этом более подробно автор рассказывал в своём видеокурсе здесь. Я там многое узнал и теперь мой код стал значительно более безопасный.

_creat

 
 Функция            Создает новый файл или перезаписывает существующий.
 
 
 
 Синтаксис          #include <dos.h>
 
                    int _creat(const char * path, int attrib);
 
 
 
 Файл, содержащий   io.h
 
 прототип
 
 
 
 Описание           _creat берет аргумент attrib -  слово атрибутов
 
                    DOS. Файл всегда открывается в двоичном режиме. При
 
                    успешном    создании    файла    указатель    файла
 
                    устанавливается  на  начало   этого   файла.   Файл
 
                    открывается сразу для чтения и записи.
 
 
 
                    Если файл    уже    существует,   то   его   размер
 
                    устанавливается   равным   0.   (Это   эквивалентно
 
                    удалению  файла  и  созданию нового файла с этим же
 
                    именем).
 
 
 
                    Аргумент attrib  в  _creat  может  быть  одной   из
 
                    следующих констант (определенных в dos.h):
 
 
 
                      FA_DRONLY   Только чтение.
 
                      FA_HIDDEN   Скрытый файл.
 
                      FA_SYSTEM   Системный файл.
 
 
 
 Возвращаемое       При успешном завершении _creat возвращает дескрип-
 
 значение           тор нового файла, неотрицательное число; иначе воз-
 
                    вращается -1.
 
 
 
                    В случае  ошибки  errno принимает одно из следующих
 
                    значений:
 
 
 
                      ENOENT - Маршрут или имя файла не найдены.
 
                      EMFILE - Слишком много открытых файлов.
 
                      EACCES - Отказ доступа.
 
 
 
 Переносимость      _creat уникальна для DOS.
 
 
 
 Смотрите также     _chmod, chsize, _close, close, creat, creatnew,
 
                    creattemp.
 
 
 
 Пример:
 
 
 
 #include<sys\stat.h>
 
 #include<process.h>
 
 #include<string.h>
 
 #include<stdio.h>
 
 #include<fcntl.h>
 
 #include<errno.h>
 
 #include<io.h>
 
 
 
 int main(void)
 
 {
 
    int handle;
 
    char buf[] = "0123456789";
 
    /* создать файл для чтения и записи в двоичном режиме */
 
    if((handle = _creat("DUMMY.FIL",0)) < 0)
 
    {
 
       switch(errno)
 
       {
 
       case ENOENT: printf("Ошибка:Маршрут или имя файла не найдены.\n");
 
                    break;
 
       case EMFILE: printf("Ошибка:Слишком много открытых файлов.\n");
 
                    break;
 
       case EACCES: printf("Ошибка: Отказ доступа\n");
 
                    break;
 
       default:     printf("Ошибка при создании файла\n");
 
                    break;
 
       }
 
       exit(1);
 
    }
 
    /* записать в файл строку с завершающим нулевым символом */
 
    write(handle,buf,strlen(buf)+1);
 
    /* закрыть файл */
 
    close(handle);
 
    return 0;
 
 }

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

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




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



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


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