Учись программированию на C++ Builder бесплатно!

Синтаксис


#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 конструируется путем логического побитового сложения флагов, перечисленных в двух следующих списках. Из первого списка может быть использован только один флаг, остальные флаги могут применяться в любых логических комбинациях.

Возвращаемое значение


При успешном завершении open возвращает целое неотрицательное число handle - логический номер открытого файла. Указатель файла (указатель текущей позиции) устанавливается на начало файла. При ошибке функция возвращает значение -1, и переменная errno получает одно из следующих значений:
ENOENT - маршрут или имя файла не найдены.
EMFILE - слишком много открытых файлов.
EACCES - доступ запрещен.
EINVACC - неверный код доступа.

Переносимость


Функция open поддерживается на системах UNIX. На версии 7 системы UNIX мнемоника O_тип не определена. Система UNIX SYSTEM 3 пользуется всеми мнемониками O_тип за исключением O_BINARY.

Пример


#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;
}

Поиск по сайту