open

OPEN(2)                   СиÑÑемнÑе вÑÐ·Ð¾Ð²Ñ                   OPEN(2)



ÐÐÐÐÐÐÐÐ
       open, creat -- оÑкÑÑÑÑ Ð¸, веÑоÑÑно, ÑоздаÑÑ Ñайл или
       ÑÑÑÑойÑÑво

ÐÐ ÐТÐÐЯ СÐÐÐÐÐ
       #include <sys/types.h>
       #include <sys/stat.h>
       #include <fcntl.h>

       int open(const char *pathname, int flags);
       int open(const char *pathname, int flags, mode_t mode);
       int creat(const char *pathname, mode_t mode);

ÐÐÐСÐÐÐÐ
       СиÑÑемнÑй вÑзов open пÑевÑаÑÐ°ÐµÑ Ð¸Ð¼Ñ Ñайла в
       деÑкÑипÑÐ¾Ñ Ñайла (неболÑÑое неоÑÑиÑаÑелÑное
       ÑиÑло, иÑполÑзÑемое пÑи поÑледÑÑÑем
       вводе-вÑводе, напÑимеÑ, Ñ read, write,  и Ñ. п.
       ÐÑли ÑиÑÑемнÑй вÑзов завеÑÑаеÑÑÑ ÑÑпеÑно,
       возвÑаÑеннÑй ÑайловÑй деÑкÑипÑÐ¾Ñ ÑвлÑеÑÑÑ
       ÑамÑм маленÑким деÑкÑипÑоÑом, коÑоÑÑй еÑе не
       оÑкÑÑÑ Ð¿ÑоÑеÑÑом.  Ð ÑезÑлÑÑаÑе ÑÑого вÑзова
       поÑвлÑеÑÑÑ Ð½Ð¾Ð²Ñй оÑкÑÑÑÑй Ñайл, не ÑазделÑемÑй
       ни Ñ ÐºÐ°ÐºÐ¸Ð¼ пÑоÑеÑÑом (ÑазделÑемÑе оÑкÑÑÑÑе
       ÑÐ°Ð¹Ð»Ñ Ð¼Ð¾Ð³ÑÑ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÑÑÑ Ð² ÑезÑлÑÑаÑе
       ÑиÑÑемного вÑзова fork(2).  ÐовÑй ÑайловÑй
       деÑкÑипÑÐ¾Ñ Ð±ÑÐ´ÐµÑ Ð¾ÑÑаваÑÑÑÑ Ð¾ÑкÑÑÑÑм пÑи
       вÑполнении ÑÑнкÑии exec(2) (ÑмоÑÑи опиÑание
       fcntl(2)).  УказаÑÐµÐ»Ñ Ð² Ñайле ÑÑÑанавливаеÑÑÑ Ð²
       наÑало.

       ÐаÑамеÑÑ flags -- ÑÑо O_RDONLY, O_WRONLY или O_RDWR,
       задаÑÑие, ÑооÑвеÑÑÑвенно, оÑкÑÑÑие Ñайла
       ÑолÑко Ð´Ð»Ñ ÑÑениÑ, ÑолÑко Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи и длÑ
       ÑÑÐµÐ½Ð¸Ñ Ð¸ запиÑи, коÑоÑÑе можно
       комбиниÑоваÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð»Ð¾Ð³Ð¸ÑеÑкого ÐÐÐ Ñ
       нÑлем или более нижеÑледÑÑÑÐ¸Ñ Ñлагов:

       O_CREAT ÐÑли Ñайл не ÑÑÑеÑÑвÑеÑ, Ñо он бÑдеÑ
               Ñоздан.  ÐÐ»Ð°Ð´ÐµÐ»ÐµÑ (uid) Ñайла
               ÑÑÑанавливаеÑÑÑ Ð² ÑакÑиÑеÑкий
               иденÑиÑикаÑÐ¾Ñ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑа пÑоÑеÑÑа.
               ÐÑÑппа (gid) ÑÑÑанавливаеÑÑÑ Ð»Ð¸Ð±Ð¾ в
               ÑакÑиÑеÑкий иденÑиÑикаÑÐ¾Ñ Ð³ÑÑппÑ
               пÑоÑеÑÑа или же в иденÑиÑикаÑÐ¾Ñ Ð³ÑÑппÑ
               ÑодиÑелÑÑкого каÑалога (завиÑÐ¸Ñ Ð¾Ñ
               Ñипа Ñайловой ÑиÑÑÐµÐ¼Ñ Ð¸ Ñлагов
               пÑогÑÐ°Ð¼Ð¼Ñ mount, а Ñакже пÑав доÑÑÑпа к
               ÑодиÑелÑÑÐºÐ¾Ð¼Ñ ÐºÐ°ÑалогÑ.  См., напÑимеÑ,
               Ñлаги bsdgroups и sysvgroups в Ñайловой
               ÑиÑÑеме ext2, коÑоÑÑе опиÑÐ°Ð½Ñ Ð² mount(8)).

       O_EXCL  ÐÑли иÑполÑзÑеÑÑÑ ÑовмеÑÑно Ñ O_CREAT, Ñо
               еÑли Ñайл Ñже ÑÑÑеÑÑвÑеÑ, Ñо open завеÑÑиÑÑÑ Ñ
               оÑибкой.  Ð ÑÑом конÑекÑÑе ÑимволÑнаÑ
               ÑÑÑлка ÑÑÑеÑÑвÑеÑ, незавиÑимо Ð¾Ñ Ñого,
               кÑда она ÑказÑваеÑ.  O_EXCL не ÑабоÑÐ°ÐµÑ Ð½Ð°
               ÑайловÑÑ ÑиÑÑÐµÐ¼Ð°Ñ NFS, а в пÑогÑаммаÑ,
               полагаÑÑиÑÑÑ Ð½Ð° ÑÑÐ¾Ñ Ñлаг Ð´Ð»Ñ ÑеализаÑии
               блокиÑовки, Ð²Ð¾Ð·Ð½Ð¸ÐºÐ½ÐµÑ race condition.
               РеÑение Ð´Ð»Ñ Ð°ÑомаÑной блокиÑовки Ñ
               помоÑÑÑ Ñайла: ÑоздаÑÑ Ñайл Ñ ÑникалÑнÑм
               именем на Ñой же Ñамой Ñайловой
               ÑиÑÑеме (ÑÑо Ð¸Ð¼Ñ Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ,
               напÑимеÑ, Ð¸Ð¼Ñ Ð¼Ð°ÑÐ¸Ð½Ñ Ð¸ иденÑиÑикаÑоÑ
               пÑоÑеÑÑа), иÑполÑзоваÑÑ link(2), ÑÑобÑ
               ÑоздаÑÑ ÑÑÑÐ»ÐºÑ Ð½Ð° Ñайл блокиÑовки.  ÐÑли
               link() возвÑаÑÐ°ÐµÑ 0, знаÑиÑ, блокиÑовка
               бÑла ÑÑпеÑной. РпÑоÑивном ÑлÑÑае
               иÑполÑзÑйÑе stat(2), ÑÑÐ¾Ð±Ñ ÑбедиÑÑÑÑ, ÑÑо
               колиÑеÑÑво ÑÑÑлок на ÑникалÑнÑй Ñайл
               возÑоÑло до двÑÑ, ÑÑо опÑÑÑ Ð¾Ð·Ð½Ð°ÑаеÑ, ÑÑо
               блокиÑовка бÑла ÑÑпеÑной.

       O_NOCTTY
               ÐÑли pathname ÑÑÑлаеÑÑÑ Ð½Ð° ÑеÑминалÑное
               ÑÑÑÑойÑÑво — Ñм.  tty(4), — Ñо оно не ÑÑанеÑ
               конÑÑолиÑÑÑÑим ÑеÑминалом пÑоÑеÑÑа,
               даже еÑли Ñ ÑÑого пÑоÑеÑÑа Ð½ÐµÑ Ñакового.

       O_TRUNC ÐÑли Ñайл Ñже ÑÑÑеÑÑвÑеÑ, ÑвлÑеÑÑÑ Ð¾Ð±ÑÑнÑм
               Ñайлом, а Ñежим оÑкÑÑÑÐ¸Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑеÑ
               запиÑÑ (Ñо биÑÑ ÑÑо O_RDWR или O_WRONLY), Ñо он
               бÑÐ´ÐµÑ Ð¾Ð±Ñезан до нÑлевой длинÑ.  ÐÑли
               Ñайл ÑвлÑеÑÑÑ FIFO или ÑÑÑÑойÑÑвом
               ÑеÑминала, Ñо Ñлаг O_TRUNC игноÑиÑÑеÑÑÑ.  Ð
               пÑоÑивном ÑлÑÑае дейÑÑвие O_TRUNC не
               опиÑано.  (Ðа Ð¼Ð½Ð¾Ð³Ð¸Ñ Ð²ÐµÑÑиÑÑ Linux ÑÑÐ¾Ñ Ñлаг
               бÑÐ´ÐµÑ Ð¸Ð³Ð½Ð¾ÑиÑован; на дÑÑÐ³Ð¸Ñ Ð²ÐµÑÑиÑÑ
               бÑÐ´ÐµÑ Ð²Ð¾Ð·Ð²ÑаÑена оÑибка.)

       O_APPEND
               Файл оÑкÑÑваеÑÑÑ Ð² Ñежиме добавлениÑ.
               ÐеÑед каждÑм write, ÑайловÑй ÑказаÑелÑ
               пеÑемеÑаеÑÑÑ Ð² ÐºÐ¾Ð½ÐµÑ Ñайла, как еÑли бÑ
               иÑполÑзовалÑÑ lseek.  O_APPEND Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑивеÑÑи
               к повÑÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ñайлов на Ñайловой
               ÑиÑÑеме NFS, еÑли неÑколÑко пÑоÑеÑÑов
               одновÑеменно добавлÑÑÑ Ð´Ð°Ð½Ð½Ñе в один
               Ñайл.  ÐÑо пÑоиÑÑÐ¾Ð´Ð¸Ñ Ð¸Ð·-за Ñого, ÑÑо NFS
               не поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ðµ в Ñайл,
               поÑÑÐ¾Ð¼Ñ ÑдÑо на маÑине-клиенÑе должно
               ÑмÑлиÑоваÑÑ ÑÑÑ Ð¿Ð¾Ð´Ð´ÐµÑжкÑ, ÑÑо не можеÑ
               бÑÑÑ Ð²Ñполнено без race condition.

       O_NONBLOCK или O_NDELAY
               ÐÑли возможно, Ñо Ñайл оÑкÑÑваеÑÑÑ Ð²
               неблокиÑÑÑÑем Ñежиме. Ðи open, ни дÑÑгие
               поÑледÑÑÑие опеÑаÑии над возвÑаÑеннÑм
               деÑкÑипÑоÑом Ñайла не заÑÑавÑÑ
               вÑзÑваÑÑий пÑоÑеÑÑ Ð¶Ð´Ð°ÑÑ.  РабоÑа Ñ
               каналами FIFO Ñакже опиÑана в fifo(4).  Ð‐
               ÑÐ¾Ñ Ñежим не обÑзан как-либо
               дейÑÑвоваÑÑ Ð½Ð° ÑайлÑ, не ÑвлÑÑÑиеÑÑ FIFO.

       O_SYNC  Файл оÑкÑÑваеÑÑÑ Ð² Ñежиме ÑинÑÑонного
               ввода-вÑвода.  ÐÑе вÑÐ·Ð¾Ð²Ñ write длÑ
               ÑооÑвеÑÑÑвÑÑÑего деÑкÑипÑоÑа Ñайла
               блокиÑÑÑÑ Ð²ÑзÑваÑÑий пÑоÑеÑÑ Ð´Ð¾ ÑÐµÑ Ð¿Ð¾Ñ,
               пока даннÑе не бÑдÑÑ ÑизиÑеÑки
               запиÑÐ°Ð½Ñ Ð¾Ð±Ð¾ÑÑдованием, на коÑоÑом
               наÑодиÑÑÑ Ñайл.  Ðднако же, ÑмоÑÑи в
               Ñазделе ÐÐÐ ÐÐÐЧÐÐÐЯ.

       O_NOFOLLOW
               ÐÑли pathname -- ÑÑо ÑимволиÑеÑÐºÐ°Ñ ÑÑÑлка, Ñо
               open завеÑÑаеÑÑÑ Ñ ÐºÐ¾Ð´Ð¾Ð¼ оÑибки.  ÐÑо
               ÑаÑÑиÑение из FreeBSD, коÑоÑое бÑло
               добавлено в Linux в веÑÑии 2.1.126.  ÐÑе
               пÑоÑие ÑимволиÑеÑкие ÑÑÑлки в имени
               бÑдÑÑ Ð¾Ð±ÑабоÑÐ°Ð½Ñ ÐºÐ°Ðº обÑÑно.
               ÐаголовоÑнÑе ÑÐ°Ð¹Ð»Ñ Ð¸Ð· glibc 2.0.100 и позже
               ÑодеÑÐ¶Ð°Ñ Ð¾Ð¿Ñеделение ÑÑого Ñлага; ÑдÑа
               Ñ Ð²ÐµÑÑиÑми менÑÑе, Ñем 2.1.126, игноÑиÑÑÑÑ
               ÑÑÐ¾Ñ Ñлаг.

       O_DIRECTORY
               ÐÑли pathname не ÑвлÑеÑÑÑ ÐºÐ°Ñалогом, Ñо open
               завеÑÑиÑÑÑ Ñ ÐºÐ¾Ð´Ð¾Ð¼ оÑибки.  ÐÑÐ¾Ñ Ñлаг
               иÑполÑзÑеÑÑÑ ÑолÑко в Linux, и бÑл
               добавлен в ÑдÑе 2.1.126, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ
               пÑоблем Ñ Ð°Ñаками Ñипа "оÑказ
               обÑлÑживаниÑ", еÑли opendir(2) бÑл вÑзван Ñ
               каналом FIFO или ленÑоÑнÑм ÑÑÑÑойÑÑвом.
               ÐÑÐ¾Ñ Ñлаг не ÑледÑÐµÑ Ð¸ÑполÑзоваÑÑ Ð²Ð½Ðµ
               ÑеализаÑии opendir.

       O_LARGEFILE
               Ðа 32-биÑнÑÑ ÑиÑÑемаÑ, поддеÑживаÑÑиÑ
               ÐолÑÑие ФайловÑе СиÑÑемÑ, ÑÑÐ¾Ñ Ñлаг
               позволÑÐµÑ Ð¾ÑкÑÑваÑÑ ÑайлÑ, длина коÑоÑÑÑ
               не помеÑаеÑÑÑ Ð² 31 биÑ.

       ÐекоÑоÑÑе из вÑÑеопиÑаннÑÑ Ñлагов могÑÑ Ð±ÑÑÑ
       Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ñ Ð¿Ð¾Ñле оÑкÑÑÑÐ¸Ñ Ñайла Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ fctnl.

       ÐÑгÑÐ¼ÐµÐ½Ñ mode Ð·Ð°Ð´Ð°ÐµÑ Ð¿Ñава доÑÑÑпа, коÑоÑÑе
       иÑполÑзÑÑÑÑÑ Ð² ÑлÑÑае ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ñайла.
       Ðни модиÑиÑиÑÑÑÑÑÑ Ð¾Ð±ÑÑнÑм ÑпоÑобом, иÑполÑзÑÑ
       umask пÑоÑеÑÑа:  пÑава доÑÑÑпа ÑвежеÑозданного
       Ñайла ÑÐ°Ð²Ð½Ñ (mode & ~umask).  ÐамеÑÑÑе, ÑÑо ÑÑÐ¾Ñ Ñежим
       доÑÑÑпа оÑноÑиÑÑÑ ÑолÑко к поÑледÑÑÑим
       обÑаÑениÑм к ÑвежеÑÐ¾Ð·Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ ÑайлÑ;
       ÑиÑÑемнÑй вÑзов open, коÑоÑÑй ÑÐ¾Ð·Ð´Ð°ÐµÑ Ð½Ð¾Ð²Ñй
       Ñайл ÑолÑко Ð´Ð»Ñ ÑÑениÑ, вполне Ð¼Ð¾Ð¶ÐµÑ Ð²ÐµÑнÑÑÑ
       ÑайловÑй деÑкÑипÑÐ¾Ñ Ð´Ð»Ñ ÑÑениÑ/запиÑи.

       ÐижеÑледÑÑÑие ÑимволиÑеÑкие конÑÑанÑÑ Ð¼Ð¾Ð¶Ð½Ð¾
       иÑполÑзоваÑÑ Ð² mode:

       S_IRWXU
              00700 полÑзоваÑÐµÐ»Ñ (Ð²Ð»Ð°Ð´ÐµÐ»ÐµÑ Ñайла)
              Ð¸Ð¼ÐµÐµÑ Ð¿Ñава ÑÑениÑ, запиÑи и
              вÑполнениÑ.

       S_IRUSR (S_IREAD)
              00400 полÑзоваÑÐµÐ»Ñ Ð¸Ð¼ÐµÐµÑ Ð¿Ñаво ÑÑениÑ

       S_IWUSR (S_IWRITE)
              00200 полÑзоваÑÐµÐ»Ñ Ð¸Ð¼ÐµÐµÑ Ð¿Ñаво запиÑи

       S_IXUSR (S_IEXEC)
              00100 полÑзоваÑÐµÐ»Ñ Ð¸Ð¼ÐµÐµÑ Ð¿Ñаво
              вÑполнениÑ

       S_IRWXG
              00070 гÑÑппа Ð¸Ð¼ÐµÐµÑ Ð¿Ñава ÑÑениÑ, запиÑи и
              вÑполнениÑ

       S_IRGRP
              00040 гÑÑппа Ð¸Ð¼ÐµÐµÑ Ð¿Ñаво ÑÑениÑ

       S_IWGRP
              00020 гÑÑппа Ð¸Ð¼ÐµÐµÑ Ð¿Ñаво запиÑи

       S_IXGRP
              00010 гÑÑппа Ð¸Ð¼ÐµÐµÑ Ð¿Ñаво вÑполнениÑ

       S_IRWXO
              00007 вÑе оÑÑалÑнÑе имеÑÑ Ð¿Ñава ÑÑениÑ,
              запиÑи и вÑполнениÑ

       S_IROTH
              00004 вÑе оÑÑалÑнÑе имеÑÑ Ð¿Ñаво ÑÑениÑ

       S_IWOTH
              00002 вÑе оÑÑалÑнÑе имеÑÑ Ð¿Ñаво запиÑи

       S_IXOTH
              00001 вÑе оÑÑалÑнÑе имеÑÑ Ð¿Ñаво вÑполнениÑ

       mode вÑегда должен бÑÑÑ Ñказан пÑи
       иÑполÑзовании O_CREAT, во вÑÐµÑ Ð¾ÑÑалÑнÑÑ ÑлÑÑаÑÑ
       ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¸Ð³Ð½Ð¾ÑиÑÑеÑÑÑ.

       creat ÑквиваленÑен open Ñ flags, ÑавнÑми O_CREAT |
       O_WRONLY | O_TRUNC.

ÐÐÐÐÐ ÐЩÐÐÐÐÐ ÐÐÐЧÐÐÐÐ
       open и creat возвÑаÑаÑÑ Ð½Ð¾Ð²Ñй деÑкÑипÑÐ¾Ñ Ñайла,
       или -1, еÑли пÑоизоÑла оÑибка (в ÑÑом ÑлÑÑае
       errno ÑÑÑанавливаеÑÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñм обÑазом).
       ÐамеÑÑÑе, ÑÑо open Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑкÑÑваÑÑ ÑÐ°Ð¹Ð»Ñ ÑÑÑÑойÑÑв,
       но creat не Ð¼Ð¾Ð¶ÐµÑ ÑоздаваÑÑ Ð¸Ñ -- иÑполÑзÑйÑе
       Ð´Ð»Ñ ÑÑого mknod(2).

       Ðа ÑайловÑÑ ÑиÑÑÐµÐ¼Ð°Ñ NFS Ñ Ð²ÐºÐ»ÑÑеннÑм
       пÑеобÑазованием иденÑиÑикаÑоÑов
       полÑзоваÑелей open Ð¼Ð¾Ð¶ÐµÑ Ð²ÐµÑнÑÑÑ ÑайловÑй
       деÑкÑипÑоÑ, но, напÑимеÑ, read(2) веÑÐ½ÐµÑ Ð¾ÑибкÑ
       EACCES.  ÐÑо из-за Ñого, ÑÑо ÐºÐ»Ð¸ÐµÐ½Ñ Ð²ÑполнÑÐµÑ open,
       пÑовеÑÑÑ Ð¿Ñава доÑÑÑпа, но пÑеобÑазование
       иденÑиÑикаÑоÑов пÑоизводиÑÑÑ ÑеÑвеÑом пÑи
       запÑоÑÐ°Ñ Ð½Ð° ÑÑение и запиÑÑ.

       ÐÑли Ñайл ÑолÑко ÑÑо Ñоздан, его atime, ctime и
       mtime, а Ñакже ctime и mtime ÑодиÑелÑÑкого
       каÑалога, ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð² ÑекÑÑее вÑемÑ, Ð
       пÑоÑивном ÑлÑÑае еÑли Ñайл модиÑиÑиÑован
       из-за Ñлага O_TRUNC, его Ð¿Ð¾Ð»Ñ ctime и mtime
       ÑÑÑанавливаÑÑÑÑ Ð² ÑекÑÑее вÑемÑ.

ÐШÐÐÐÐ
       EEXIST  pathname Ñже ÑÑÑеÑÑвÑеÑ, и бÑли иÑполÑзованÑ
               O_CREAT и O_EXCL.

       EISDIR  pathname ÑÑÑлаеÑÑÑ Ð½Ð° каÑалог, а Ñип доÑÑÑпа
               подÑазÑÐ¼ÐµÐ²Ð°ÐµÑ Ð·Ð°Ð¿Ð¸ÑÑ.

       EACCES  ÐапÑоÑеннÑй доÑÑÑп к ÑÐ°Ð¹Ð»Ñ Ð½Ðµ ÑазÑеÑен,
               или же один из каÑалогов в pathname не
               позволÑÐµÑ Ð¿Ð¾Ð¸Ñк (вÑполнение), или же
               Ñайл еÑе не ÑÑÑеÑÑвÑеÑ, а доÑÑÑп длÑ
               запиÑи в ÑодиÑелÑÑкий каÑалог не
               ÑазÑеÑен.  error_ENAMETOOLONG(pathname)
               error_ENOENT(pathname)

       ENOTDIR ÐомпоненÑ, иÑполÑзованнÑй как
               каÑалог в pathname, ÑаковÑм не ÑвлÑеÑÑÑ,
               или бÑл Ñказан Ñлаг O_DIRECTORY, а pathname не
               ÑвлÑеÑÑÑ ÐºÐ°Ñалогом.

       ENXIO   УÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ O_NONBLOCK | O_WRONLY, Ñайл ÑвлÑеÑÑÑ
               каналом FIFO, но Ð½ÐµÑ Ð¿ÑоÑеÑÑов, коÑоÑÑе
               оÑкÑÑли ÑÑÐ¾Ñ ÐºÐ°Ð½Ð°Ð» Ð´Ð»Ñ ÑÑениÑ.  Ðозможно
               Ñакже, ÑÑо Ñайл ÑвлÑеÑÑÑ Ñайлом ÑÑÑÑойÑÑва,
               но ÑооÑвеÑÑÑвÑÑÑее ÑÑÑÑойÑÑво не
               ÑÑÑановлено.

       ENODEV  pathname ÑÑÑлаеÑÑÑ Ð½Ð° Ñайл ÑÑÑÑойÑÑва, но
               ÑооÑвеÑÑÑвÑÑÑего ÑÑÑÑойÑÑва не ÑÑÑеÑÑвÑеÑ.
               (ÐÑо оÑибка в ÑдÑе Linux: должен
               возвÑаÑаÑÑÑÑ ENXIO.)

       EROFS   pathname ÑÑÑлаеÑÑÑ Ð½Ð° Ñайл, наÑодÑÑийÑÑ Ð½Ð°
               Ñайловой ÑиÑÑеме, ÑмонÑиÑованной
               ÑолÑко Ð´Ð»Ñ ÑÑениÑ, и бÑл запÑоÑен доÑÑÑп
               Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи.

       ETXTBSY pathname ÑÑÑлаеÑÑÑ Ð½Ð° иÑполнÑемÑй Ñайл,
               коÑоÑÑй в наÑÑоÑÑее вÑÐµÐ¼Ñ Ð¸ÑполнÑеÑÑÑ, и
               бÑл запÑоÑен доÑÑÑп Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи.
               error_EFAULT(pathname)

       ELOOP   СлиÑком много ÑимволиÑеÑÐºÐ¸Ñ ÑÑÑлок
               бÑло пÑойдено пÑи обнаÑÑжении pathname,
               или бÑл Ñказан Ñлаг O_NOFOLLOW, а pathname
               ÑвлÑеÑÑÑ ÑимволиÑеÑкой ÑÑÑлкой.

       ENOSPC  pathname нÑжно бÑло ÑоздаÑÑ Ð½Ð° ÑÑÑÑойÑÑве,
               на коÑоÑом не бÑло меÑÑа Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾
               Ñайла.  error_ENOMEM

       EMFILE  ÐÑоÑеÑÑ Ñже оÑкÑÑл макÑималÑно
               допÑÑÑимое колиÑеÑÑво Ñайлов.

       ENFILE  ÐоÑÑигнÑÑ Ð¿Ñедел на макÑималÑное обÑее
               колиÑеÑÑво Ñайлов, оÑкÑÑÑÑÑ Ð² ÑиÑÑеме.

СÐÐТÐÐТСТÐÐРСТÐÐÐÐРТÐÐ
       SVr4, SVID, POSIX, X/OPEN, BSD 4.3 Флаги O_NOFOLLOW и O_DIRECTORY
       ÑпеÑиÑиÑÐ½Ñ Ð´Ð»Ñ Linux.  ÐÐ»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ð¸Ñ
       опÑеделение, Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑÑебоваÑÑÑÑ Ð¾Ð¿ÑеделиÑÑ
       (ÑеÑез #define) Ñимвол _GNU_SOURCE.

ÐÐÐ ÐÐÐЧÐÐÐЯ
       РпÑоÑоколе, на коÑоÑом ÑабоÑÐ°ÐµÑ NFS, ÑÑÑеÑÑвÑеÑ
       множеÑÑво недоÑабоÑок, в ÑиÑле пÑоÑего,
       оказÑваÑÑÐ¸Ñ Ð²Ð»Ð¸Ñние на O_SYNC и O_NDELAY.

       POSIX пÑедоÑÑавлÑÐµÑ ÑÑи ÑазнÑÑ Ð²Ð°ÑианÑа
       ÑинÑÑонного ввода-вÑвода, ÑооÑвеÑÑÑвÑÑÑего
       Ñлагам O_SYNC, O_DSYNC и O_RSYNC.  РнаÑÑоÑÑее вÑемÑ
       (веÑÑÐ¸Ñ 2.1.130), вÑе они ÑвлÑÑÑÑÑ Ñинонимами под
       Linux.

СÐÐТРРТÐÐÐÐ
       read(2), write(2), fcntl(2), close(2), link(2), mknod(2), mount(2),
       stat(2), umask(2), unlink(2), socket(2), fopen(3), fifo(4)

ÐÐÐ ÐÐÐÐ
       Copyright (C) Alexey Mahotkin <alexm@hsys.msk.ru> 1999-2001



Linux                            June 3, 1999                          OPEN(2)