Aoao le Lautusi Lavea Tatala

Aotelega

#include << A HREF = "faila: /usr/include/sys/types.h"> sys / types.h> #include << A HREF = "faila: /usr/include/sys/stat.h"> sys / stat.h> #include << A HREF = "faila: /usr/include/fcntl.h"> fcntl.h> int open (const char * namename , int flags ); tatala tatala (const char * namename , flags , mode_t mode ); (creat char * namename , mode_t mode );

Faʻamatalaga

O le polokalama tatala ( system ) e faʻaaogaina e sui ai le igoa ole igoa i le faila o le faila (o se mea itiiti, leai se aʻafiaga mo le faʻaaoga i le isi I / O e pei o le faitau , tusitusi , ma isi). Ina ua manuia le valaau, na toe faafoi mai e le faila o le faila le wil o le faila failalalo pito i lalo e leʻi tatalaina mo le faagasologa. O lenei valaau e fatuina ai se faila tatala fou, e le o fefaasoaaʻi i soʻo se isi lava gaioiga. (Ae o le tufatufaina o faila tatala e mafai ona tulaʻi mai i luga o le auala (2) telefoni feaveaʻi.) O le faila o le faila fou e seti ina ia tumau le tatalaina i galuega faatino (tagai fcntl (2)). O le faila o le faila ua setiina i le amataga o le faila.

O faʻataʻitaʻiga o se tasi o O_RDONLY , O_WRONLY poʻo O_RDWR lea talosaga e tatala ai le faila na o le faitau-naʻo, tusitusi-na o le faitau / tusitusi, i le faasologa, bitwise- poʻo le 'd i le zero pe sili atu o mea nei:

O_CREAT

Afai e le i ai le faila o le a faia. O le tagata e ona (ID e faʻaaogaina) o le faila e seti i le ID faʻamaonia lelei o le faagasologa. O le faʻavaeina o le vaega (ID ID) e setiina i le ID ID lelei o le faagasologa poʻo le ID vaega o le faʻamaumauga a matua (e faalagolago i ituaiga faila faila ma le mauga, ma le mode o le lisi matua, tagaʻi, pei o le mauga filifiliga bbdgroups ma sysvgroup o le 'extin filesystem, pei ona faʻamatalaina i le mauga (8)).

O_EXCL

A faʻaaogaina ma O_CREAT , pe'ā fai o loʻo i ai le faila, o se mea sese ma o le a le aoga. I lenei tulaga, o se sootaga faʻafaʻailoga e iai, e tusa lava po o fea o loʻo i ai ona manatu. O_EXCL ua malepe i luga o polokalama NFS file , polokalama e faalagolago i ai mo le faia o galuega tapuni o le a aofia ai se tulaga taufetuga. O le fofo mo le faia o le faila atomic i le faʻaaogaina o se lolaina o le fatuina lea o se faila tulaga ese i luga o fs lava (eg, aofia ai le igoa ole igoa ma le pid), faʻaaoga le fesoʻotaʻiga (2) e fai ai se sootaga i le loka. Afai e fesoʻotaʻi () toe foʻi mai 0, o le loka ua manuia. A leai, faʻaaoga le stat (2) i luga o le faila tulaga ese e siaki pe afai ua faateleina le fesoʻotaʻiga o le fesoʻotaʻiga i le 2, i le fea tulaga e manuia ai le loka.

O_NOCTTY

Afai o le igoa igoa e faatatau i se masini masini --- see tty (4) --- o le a le avea ma se mea e pulea ai le siaki e tusa lava pe leai se tasi o le faagasologa.

O_TRUNC

Afai o loʻo i ai le faila ma o se faila masani ma o le avanoa avanoa e mafai ai ona tusi (ie, ole O_RDWR poʻo le O_WRONLY) o le a faʻamaonia i le uumi 0. Afai o le faila o se FIFO poʻo se faila faʻapipiʻi, e le amanaʻia le fuʻa O_TRUNC. A leai, o le aafiaga o O_TRUNC e le o taʻua. (I le tele o faʻasalalauga Linux o le a le amanaiaina; i luga o isi lomiga, o le a toe foi mai se mea sese.)

O_APPEND

Ua tatalaina le faila i le faʻaopoopoga faʻatusa. Aʻo le i tusia taʻitasi, o le faʻailoga faila o loʻo tuʻuina i le pito o le faila, e peiseai o le lseek . O_APPEND e mafai ona taʻitaʻia faila i luga o polokalama a le NFS pe afai e silia ma le tasi le faagasologa e tuʻuina atu faʻamaumauga i se faila i le taimi e tasi. E mafua lenei mea ona o le NFS e le lagolagoina le faʻapipiʻi atu i se faila, o lea e tatau ai i le kernel ona faʻataʻitaʻi, lea e le mafai ona faia e aunoa ma se faʻailoga.

O_NONBLOCK poʻo O_NDELAY

Afai e mafai, e tatalaina le faila i le tulaga e le taofia. E le mafai foi ona faʻatali le faʻatulagaina o le valaauga i le tatalaina o mea uma pe a maeʻa mulimuli ane i luga o le faila o le faila. Mo le taulimaina o FIFOs (faaigoaina o paipa), tagaʻi foi i le fifo (4). O lenei faiga e le manaʻomia ona i ai se aafiaga i faila e ese mai FIFOs.

O_SYNC

Ua tatalaina le faila mo le I / O faʻatonu. Soo se tusitusi s i luga o le faila o faila o faila o le a taofia ai le faʻagasologa o le faʻailoga seia oʻo ina tusia faʻamaumauga i le meafaigaluega autu. Vaʻai Faʻaʻaiga i lalo, e ui lava.

O_NOFOLLOW

Afai o le igoa igoa o se sootaga faafaatusa, ona le aoga lea. O le avanoa lenei FreeBSD, lea na faaopoopo i Linux i le 2.1.126. Faʻailoga faʻatusa i vaega muamua o le auala o le a mulimuli mai. O ulutala mai glibc 2.0.100 ma mulimuli ane aofia ai se faʻamatalaga o lenei fuʻa; kernels ao lei 2.1.126 o le a le amanaiaina pe afai e faʻaaogaina .

O_DIRECTORY

Afai o le igoa faʻailoga e le o se faʻamaumauga, mafua ai le tatala e toilalo. O lenei fuʻa o Linux-patino, ma na faaopoopoina i le kernel version 2.1.126, e aloese ai mai le faʻaaogaina o le tautua pe afai o le opendir (3) o loʻo valaau i luga o se FIFO poʻo se mea faʻapipiʻi, ae le tatau ona faʻaaoga i fafo atu o le faʻatinoina o le opendir .

O_DIRECT

Taumafai e faʻaitiitia le aʻafiaga o le I / O i ma mai lenei faila. I se tulaga lautele o lenei mea o le a faʻaleagaina ai le faʻatinoga, ae aoga i tulaga faʻapitoa, e pei o le taimi e fai ai e le latou tusi a latou lava galuega. O le Igoa I / O e faia tuusao i / mai faʻamau faʻapipiʻi avanoa. O le I / O e felagolagomaʻi, pe a maeʻa le faitau (2) poʻo le (2) telefoni feaveaʻi, e faʻamaonia le faʻaliliuina o faʻamatalaga. Faʻafeiloaʻiga, ma le faʻaogaina o le tagata faʻamaonia ma le failaina o faila e tatau ona avea uma ma vaega o le poloka poloka poloka o le faila.
O lenei fuʻa e lagolagoina i luga o le tele o polokalama faʻa-Unix; lagolagosua sa faaopoopo i lalo ole Linux i le kernel version 2.4.10.
O se faʻaoga tutusa tutusa mo le poloka poloka o loʻo faʻamatalaina i totonu (8).

O_ASYNC

Fausiaina se faailo (SIGIO e le mafai, ae mafai ona suia lea i le fcntl (2)) pe a mafai ona i ai le mea na i ai po o le gaioiga i luga o lenei faʻailoga faila. O lenei tulaga e naʻo avanoa mo faʻamalo, pseudo-terminals, ma sockets. Vaʻai fcntl (2) mo nisi auiliiliga.

O_LARGEFILE

I luga o le 32-bit polokalama e lagolagoina ai le Faʻasalalau Faiga Faʻavae, faʻatagaina faila e le mafai ona faʻatusalia i latou i le 31 palota e tatala.

O nisi o nei faʻailoga e mafai ona suia e faʻaaoga ai le fcntl pe a uma ona tatalaina le faila.

O le faʻasologa o faʻamatalaga ua faʻamaʻoti mai ai faʻatagaga e faʻaaoga i le tulaga ua faia ai se faila fou. E faʻaleleia e ala i le faagasologa o le faagasologa i le masani masani: o faʻatagaga a le faila faila o (mode & ~ umask) . Manatua o lenei faiga e na o le faʻaaogaina i le lumanai o le faila fou na fai; o le valaau tatala lea e fatuina ai se faila na o le faitau-e mafai ona toe foi mai se tusitala / faila tusitala.

O faʻatusa faʻatusa faʻatusa ua saunia mo le faʻatulagaga :

S_IRWXU

00700 tagata faaaoga (pule o le faila) ua faitau, tusitusi ma faia le faatagaga

S_IRUSR (S_IREAD)

00400 tagata faaaoga ua faitau le faatagaga

S_IWUSR (S_IWRITE)

00200 tagata faigaluega o iai le faatagaga tusitusia

S_IXUSR (S_IEXEC)

00100 tagata faʻaaogaina le faʻatagaina

S_IRWXG

00070 vaega ua faitau, tusitusi ma faʻatagaina le faatagaga

S_IRGRP

00040 vaega ua faitau le faatagaga

S_IWGRP

00020 kulupu e iai le faatagaga tusitusia

S_IXGRP

00010 vaega ua faʻatagaina le faatagaga

S_IRWXO

00007 isi ua faitau, tusitusi ma faia le faatagaga

S_IROTH

00004 isi ua faitau le faatagaga

S_IWOTH

00002 isi ua i ai le faatagaga tusitusi

S_IXOTH

00001 isi ua latou faʻatagaina le faatagaga

mode e tatau ona faʻamaonia pe a fai O_CREAT i totonu o fuʻa , ma e le amanaiaina i se isi itu.

fatuga tutusa e tatala i taga e tutusa ma O_CREAT | O_WRONLY | O_TRUNC .

Toe Maua le TALI

tatala ma toe foʻi mai le faʻailoga fou o le faila, poʻo le -1 pe a tupu se mea sese (i le fea itu, ua saʻo le seti o errno ). Manatua e mafai ona matala faila faila faila faila, ae e le mafai ona fatuina i latou - faʻaaoga le lautusi (2) nai lo.

I luga o FFS file systems with UID mapping ua mafai, e mafai ona toe faafoi mai se faila o le faila ae pei o le faitau (2) talosaga e faʻatagaina ma EACCES . O le mafuaʻaga lea ona e tatala le kalani i le siakiina o faʻatagaga, ae o le UID faʻafanua o loʻo faʻatinoina e le 'auʻaunaga pe a faitau ma tusi talosaga.

Afai e fou le faila, o lona taimi, ctime, taimi o taimi e faatulaga ai i le taimi nei, ma o le taimi foi lea ma le taimi o taimi o le faasologa a matua. A leai, afai e suia le faila ona o le O_TRUNC flag, o ona taimi timu ma taimi mimi ua faatulagaina i le taimi nei.

Mea sese

EEXIST

ua leva ona i ai le igoa igoa ma O_CREAT ma O_EXCL na faʻaaogaina.

EISDIR

igoa igoa e faasino atu i se lisi ma le avanoa na talosagaina e aofia ai tusitusiga (o lona uiga, O_WRONLY poo O_RDWR ua faatulagaina).

EACCES

O le talosaga talosaga i le faila e le faʻatagaina, poʻo se tasi o directories i le igoa igoa e leʻi faatagaina ai le sueina (faʻataunuʻu) faatagaga, poʻo le faila e leʻi i ai ma tusia le avanoa i le lisi o matua e le faatagaina.

ENAMETOOLONG

Igoa o le igoa ua leva tele.

FAʻAVAE

O_CREAT e le o seti ma o le faila faila e le oi ai. A leai, o se lisi o le tusi i le igoa ole igoa e le oi ai pe o se sootaga faʻataʻitaʻituina.

Faʻaauau

O se vaega na faʻaaogaina o se tusi i le igoa igoa e le, i le mea moni, o se lisi, poʻo le O_DIRECTORY na faʻamaonia ma o le igoa e le o se lisi.

ENXIO

O_NONBLOCK | O_WRONLY ua setiina, o le faila ua faaigoa o se FIFO ma leai se faagasologa ua tatala le faila mo le faitau. Po o, o le faila o se faila faila masini ma e leai se masini faʻatusa.

ENODEV

igoa igoa e faasino i se masini faila faapitoa ma e leai se masini faʻatusa. (O se tui pipi Linux lenei - i lenei tulaga e tatau ona toe faafoi ENXIO.)

EROFA

igoa igoa e faasino i se faila i luga o se faila faila faila e na o le faitau-tusi ma tusia avanoa na talosagaina.

ETXTBSY

igoa igoa e faasino i se ata faʻatusa lea o loʻo faʻasalaina nei ma tusia avanoa na talosagaina.

EFAULT

alo faʻailoga i fafo atu o lau avanoa avanoa avanoa.

ELOOP

E tele naua fesoʻotaʻiga faʻapitoa na feagai i le foia o le igoa , poʻo le O_NOFOLLOW na faʻamalamalamaina ae o le pathname o se fesoʻotaʻiga faʻatusa.

ENOSPC

o le igoa e tatau ona fatuina ae o le masini e iai le faʻailoga e leai se avanoa mo le faila fou.

ENOMEM

E le lava le manatuaina o le kernel.

EMFILE

O le faagasologa ua i ai le numera aupito i maualuga o faila ua tatala.

FAʻAALIGA

O le tapulaa i luga o le numera atoa o faila na tatala i luga o le polokalama ua ausia.

Fesoʻotai i

SVr4, SVID, POSIX, X / OPEN, BSD 4.3 O le O_NOFOLLOW ma O_DIRECTORY flags o Linux- patino. E mafai e se tasi ona faʻamatalaina le macro GNU_SOURCE e maua ai a latou faʻamatalaga.

Tapulaa

E tele faʻamatalaga i le maliega o loʻo i lalo o le NFS, e aafia ai isi O_SYNC ma O_NDELAY .

POSIX ua tuʻuina atu ni eseesega eseese se tolu o le I / O faʻatonuina, e fetaui ma faʻaupu O_SYNC , O_DSYNC ma O_RSYNC . I le taimi nei (2.1.130) o nei mea uma i lalo o Linux.