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

ВИДЕОКУРС ВЗЛОМ
выпущен 10 декабря!


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

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



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

creat

 
 Функция            Создает новый файл или перезаписывает существующий.
 
 
 
 Синтаксис          #include <sys\stat.h>
 
                    int creat(const char * path, int amode);
 
 
 
 Файл, содержащий   io.h
 
 прототип
 
 
 
 Описание           Функция creat создает новый файл или подготавливает
 
                    для перезаписи  существующий  файл,  имя   которого
 
                    находится   в  аргументе  path.  amode  применяется
 
                    только для заново создаваемых файлов.
 
 
 
                    Файл создается в режиме,  указываемом в  глобальной
 
                    переменной _fmode (O_TEXT или O_BINARY).
 
 
 
                    Если файл   уже  существует  и  установлен  атрибут
 
                    записи,  функция creat  усекает  файл  до  длины  0
 
                    байт, оставляя  неизменными  атрибуты файлов.  Если
 
                    существующий файл имеет  атрибут  "только  чтение",
 
                    вызов   функции   creat  потерпит  неудачу  и  файл
 
                    останется неизменным.
 
 
 
                    Вызов функции creat проверяет только бит S_IWRITE в
 
                    слове  режима доступа amode.  Если данный бит равен
 
                    1,  файл имеет разрешение на запись. Если бит равен
 
                    0,  то  для  файла  разрешено  только  чтение.  Все
 
                    остальные  атрибуты  DOS  устанавливаются   равными
 
                    нулю.
 
 
 
                    amode может  принимать  одно  из следующих значений
 
                    (определенных в файле sys\stat.h):
 
 
 
                    ---------------------------------------------------
 
                    Значение amode        Режим доступа
 
                    ---------------------------------------------------
 
                    S_IWRITE              Разрешение на запись.
 
                    S_IREAD               Разрешение на чтение.
 
                    S_IREAD|S_IWRITE      Разрешение на чтение и
 
                                          запись.
 
                    ---------------------------------------------------
 
 
 
                    Примечание. В  DOS  разрешение  на запись влечет за
 
                    собой разрешение на чтение.
 
 
 
 Возвращаемое       При успешном завершении возвращается неотрицатель-
 
 значение           ное целое число - новый дескриптор файла;
 
                    иначе возвращается значение -1.
 
 
 
                    В случае ошибки errno принимает одно  из  следующих
 
                    значений:
 
 
 
                      ENOENT - Маршрут или имя файла не найдены.
 
                      EMFILE - Слишком много открытых файлов.
 
                      EACCES - Отказ доступа.
 
 
 
 Переносимость      creat поддерживается в системах UNIX.
 
 
 
 Смотрите также     chmod, chsize, close, _creat, creatnew, creattemp,
 
                    dup, dup2, _fmode(переменная), fopen, open, sopen,
 
                    write.
 
 
 
 Пример:
 
 
 
 #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