Lintlhakiso
#include << A HREF = "file: /usr/include/sys/types.h"> sys / types.h> # kenyeletsa << A HREF = "file: /usr/include/sys/stat.h"> sys / stat.h> # include << A HREF = "file: /usr/include/fcntl.h"> fcntl.h> int e bulehileng (const char * pathname , int flags ); int open (const char * pathname , int flags , mode_t mode ); ent creat (const char * pathname , mode_t mode );Tlhaloso
Lenaneo le bulehileng la ( call ) la linux ( linux ) linux le sebelisoa ho fetola tsela e kenang ho file file descriptor (e leng lenane le lenyenyane le le seng le sa sebelisoang ho I / O e latelang le ho bala , ngola , joalo-joalo). Ha pitso e atleha, faele ea tlhaloso e khutliselitsoe ho ba faele e tlaase ka ho fetisisa e sa hlahisoang bakeng sa tshebetso. Pitso ena e etsa faele e ncha e bulehileng, e sa arolelanoang le mokhoa leha e le ofe o mong. (Empa ho arolelanoa lifaele tse bulehileng li ka hlaha ka mokhoa oa mocheso (2) oa fono.) Fasta e ncha e hlalosa ho lula e bulehile hohle mesebetsing (sheba fcntl (2)). Faelete ea offset e behoa qalong ea faele.
Melaoana ea maiketsetso ke e 'ngoe ea O_RDONLY , O_WRONLY kapa O_RDWR e kopa ho bula fono ho bala-feela, ngola feela-kapa ho bala / ngola, ka ho latellana, ka botebo- kapa ka ' d ka zero kapa tse ling tse latelang:
O_CREAT
Haeba file ha e eo e tla bōptjoa. Mong'a (user ID) ea faele e behiloe ho ID e sebetsang ea mosebetsing oa tshebetso. Boikarabello ba sehlopha (sekhetho sa sehlopha) se behiloe ho ID ea sehlopha se sebetsang kapa sa sehlopha sa sehlopha sa tataiso ea motsoali (ho itšetlehile ka mofuta oa tsamaiso ea tsamaiso le ho beha mekhoa ea ho khetha, le mokhoa oa tataiso ea motsoali, bona, mohlala, thaba mefuta ea bsdgroups le metsoako ea tsamaiso ea tsamaiso ea ext2, joalokaha ho hlalosoa thabeng (8)).
O_EXCL
Ha e sebelisitsoe le O_CREAT , haeba faele e ntse e le teng ke phoso 'me e bulehileng e tla hlōleha. Moelelong ona, ho na le kamano ea tšoantšetso, ho sa tsotellehe hore na lintlha tsa eona li hokae. O_EXCL e robehile holim'a lisebelisoa tsa faele tsa NFS , mananeo ao ho itšetlehileng ka 'ona bakeng sa ho etsa mesebetsi ea ho thibela e tla ba le boemo ba peiso. Tharollo ea ho etsa li-atomic file locking ka ho sebelisa lockfile ke ho etsa faele e ikhethang ka fs e tšoanang (mohlala, ho kenyelletsa lebitso la moeti le pid), sebelisa link (2) ho etsa khokahanyo le lockfile. Haeba link () e khutlela 0, lock e atleha. Ho seng joalo, sebelisa stat (2) lefapheng le ikhethang ho hlahloba hore na palo ea khokahano ea eona e eketsehile ho ea ho 2, ka nako eo mokotla o boetse oa atleha.
O_NOCTTY
Haeba tsela e boleloa e le sesebelisoa sa sesebelisoa --- bona tty (4) -e ke ke ea e-ba sesole sa ho laola esita le haeba ts'ebetso e se na eona.
O_TRUNC
Haeba faele e se e ntse e le teng 'me ke faele e tloaelehileng' me mokhoa o bulehileng o lumella ho ngola (ke hore, ke O_RDWR kapa O_WRONLY) e tla romeloa ho fihlela bolelele ba 0. Haeba faele ke faele ea FIFO kapa sesebelisoa sa sesebelisoa, letšoao la O_TRUNC le hlokomolohuoa. Ho seng joalo, phello ea O_TRUNC ha ea tsebahala. ( Liphetolelong tse ngata tsa Linux e tla hlokomolohuoa; ka liphetolelo tse ling, e tla khutlisa phoso.)
O_APPEND
Fera e buloa ka mokhoa oa append. Pele e mong le e mong a ngola , pointer ea faele e eme qetellong ea faele, joalokaha eka e na le lseek . O_APPEND e ka lebisa ho lifaele tse silafetseng ho tsamaiso ea faele ea NFS haeba mekhoa e fetang e le 'ngoe e fetisetsa data ho file ka nako e le' ngoe. Lebaka ke hore NFS ha e tšehetse ho kenya lifaelefouno, ka hona mochine oa kernel o lokela ho o etsisa, o ke keng oa etsoa ntle le peiso ea morabe.
O_NONBLOCK kapa O_NDELAY
Ha ho khoneha, faele e buloa ka mokhoa o sa thibele. Ha e bulehe kapa ts'ebetso leha e le efe e latelang e hlalosang feshene e khutlisetsoang ho tla etsa hore pitso ea ho letse e eme. Bakeng sa ho sebetsana le li-FIFO (tse bitsoang liphaephe), bona hape tse hlano (4). Mokhoa ona ha oa lokela ho ba le phello ho lifaele tse ling ntle le FIFOs.
O_SYNC
Fera e buletsoe bakeng sa I / O ea synchronous. Mangolo leha e le afe a ngotsoe ho file file e hlalosang e tla thibela mokhoa oa ho letsetsa ho fihlela data e ngotsoe kahare ho hardware ea motheo. Bona LITHUTO tse ka tlase, leha ho le joalo.
O_NOFOLLOW
Haeba tsela e nang le moelelo ke khokahanyo ea tšoantšetso, joale ho sitoa ho buleha. Ena ke kenyelletso ea FreeBSD, e ileng ea ekeletsoa Linux ka mokhoa oa 2.1.126. Litlhaloso tsa matšoao likarolong tse qalang tsa tsela e tla nkoa. Lihlooho tse tsoang ho glibc 2.0.100 le hamorao li kenyelletsa tlhaloso ea folakha ena; lisele pele 2.1.126 li tla hlokomoloha ha li sebelisoa .
O_DIRECTORY
Haeba tsela e se nang boitsebiso, etsa hore e bulehe. Le folakha ke ea Linux, 'me e kentsoe ka kernel version 2.1.126, e le ho qoba mathata a ho hana tšebeletso haeba opendir (3) e bitsoa fifo kapa thepa ea theipi, empa ha ea lokela ho sebelisoa ntle le ts'ebetsong ea opendir .
O_DIRECT
Leka ho fokotsa liphello tsa cache tsa I / O ho le ho tloha faeleng ena. Ka kakaretso sena se tla fokotsa tshebetso, empa se na le thuso maemong a ikhethang, joalo ka ha likopo li etsa liketso tsa tsona tsa kemiso. Fumana I / O e etsoa ka ho toba ho / ho tloha ho basebedisi ba sebaka. O / O ke synchronous, ke hore, qetellong ea pitso ea ho bala (2) kapa ea ngola (2), data e tiisitsoe hore e fetisitsoe. Matšoao a ho fetisa, le ho lumellana ha mochine oa mochine le ho hlakola offset kaofela e lokela ho ba li-multiples tsa boholo bo nang le mabitso a mokhoa oa faele.
Lelapa lena le tšehetsoa ka mekhoa e mengata ea Unix; tšehetso e ile ea kenngoa tlas'a Linux ka kernel version 2.4.10.
Sebopeho se ts'oanang sa sebopeho sa lisebelisoa tsa thibelo se hlalosoa ka tala (8).
O_ASYNC
Hlahisa pontšo (SIGIO ka ho feletseng, empa sena se ka fetoloa ka fcntl (2)) ha tlhahiso kapa phallo e ntse e ka khoneha ho hlalosa file ena. Tšobotsi ena e fumaneha feela bakeng sa li-terminals, li-terminals tsa maqheka, le li-sockets. Sheba fcntl (2) bakeng sa lintlha tse ling.
O_LARGEFILE
Lits'ebetsong tse 32-bit tse tšehetsang Tsamaiso e kholo ea Lifaele, lumella lifaele tseo boholo ba tsona bo sa khonngoeng ho emela li-bits tse 31 hore li bulehe.
Tse ling tsa lifolakha tse khethollang li ka fetoloa ho sebelisa fcntl ka mor'a hore faele e butsoe.
Mokhoa oa khang o hlakisa litumello tseo o ka li sebelisang haeba ho etsoa faele e ncha. E fetotsoe ke umask ea ts'ebetso ka tsela e tloaelehileng: litumello tsa faele e entsoeng ke (mode & ~ umask) . Hlokomela hore mokhoa ona o sebetsa feela ho fihlella nakong e tlang ea faele e sa tsoa bōptjoa; pitso e bulehileng e hlahisang file e baloang feela e ka boela ea khutlisa sebopeho sa faele sa ho bala / sa ngola.
Li-constants tse latelang tsa tšoantšetso li fuoa mokhoa :
S_IRWXU
User user 00700 (mofani oa feshene) o balile, o ngola le ho phethahatsa tumello
S_IRUSR (S_IREAD)
Moemeli oa 00400 o balile tumello
S_IWUSR (S_IWRITE)
Moemeli oa 00200 o na le tumello ea lengolo
S_IXUSR (S_IEXEC)
Motlatsi oa 00100 o phethile tumello
S_IRWXG
00070 sehlopha se balile, se ngola le ho phethahatsa tumello
S_IRGRP
00040 sehlopha se balile tumello
S_IWGRP
00020 sehlopha se na le tumello ea lengolo
S_IXGRP
00010 sehlopha se phethisa tumello
S_IRWXO
Ba bang ba 00007 ba balile, ba ngotse le ho phethahatsa tumello
S_IROTH
Ba bang ba 00004 ba balile tumello
S_OOTHO
Ba bang ba 00002 ba na le tumello ea ho ngola
S_IXOTH
Ba bang ba 00001 ba phethisitse tumello
mefuta e tlameha ho hlalositsoe ha O_CREAT e le lifolakha , 'me e hlokomolohuoa ka tsela e fapaneng.
ho bopa ho tšoana le ho buloa ka lifolakha tse lekanang le O_CREAT | O_WRONLY | O_TRUNC .
ETSA HORE U KHUTLELE
bula 'me u bōpe tlaleho e ncha, kapa -1 haeba phoso e etsahetse (tabeng eo, errno e behiloe ka nepo). Hlokomela hore e bulehileng e ka bula lisebelisoa tse khethehileng tsa lisebelisoa, empa pōpo e ke ke ea li bōpa - sebelisa mknod (2) ho e-na le hoo.
Linthong tsa faele tsa NFS tse nang le mapolesa a UID, ho bulehileng ho ka khutlisetsa moeletsi oa faele empa mohlala (2) likopo li haneloa ka EACCES . Lebaka ke hore mofani o bula ka ho hlahloba tumello, empa mapolesa a UID a etsoang ke seva ha ho etsoa likopo le ho ngola.
Haeba faele e sa tsoa bōptjoa, li-atime, li-ctime, masimo a lichelete li behiloe ho nako ea joale, 'me ho joalo le ka nako ea kemiso le mtime ea tataiso ea motsoali. Ho seng joalo, haeba faele e fetotsoe ka lebaka la folakha ea O_TRUNC, masimo a eona le nako ea ho lifa li behiloe ho nako ea hona joale.
Liphoso
EEXIST
tsela e se e ntse e le teng 'me O_CREAT le O_EXCL li sebelisitsoe.
EISDIR
tsela e bolelang moelelo le kopo e kenyelletsoang ho ngola (e leng, O_WRONLY kapa O_RDWR e behiloe).
EACCES
Ho kopa ho fumana faele ha hoa lumelloa, kapa e 'ngoe ea litlaleho tsa lebitso le ne le sa lumelle ho batla (ho etsa) tumello, kapa faele e ne e le sieo ebile e ngotse ho fihlella bukeng ea motsoali ha e lumelloe.
ENAMETOOLONG
tsela e ne e le telele haholo.
ETSA
O_CREAT ha e behe 'me fano e rehiloeng ha e eo. Kapa, motsoako oa li- pathname ha o teng kapa ke khokahano ea tšoantšetso e tšosang.
ENOTDIR
Sehlooho se sebelisoang e le lenane la pathname ha se, ha e le hantle, se ngotsoe , kapa O_DIRECTORY se boletsoeng 'me lebitso la tsela e ne e se lenaneo.
ENXIO
O_NONBLOCK | O_WRONLY e behiloe, file e rehiloeng ke FIFO 'me ha ho mokhoa o nang le file e bulehileng bakeng sa ho bala. Kapa, faele ke faele e khethehileng ea sesebelisoa mme ha ho na sesebelisoa se tsamaisang.
ENODEV
pathname e bua ka sesebelisoa se ikhethileng mme ha ho sesebelisoa se tsamaisanang le sona. (Ena ke bug ea Linner kernel - boemong bona ENXIO e tlameha ho khutlisetsoa.)
EROFS
pathname e bua ka faele e hlahang tsamaisong ea tsamaiso feela le ho ngolloa ho ngolloa.
ETXTBSY
pathname e bolela setšoantšo se sebetsang seo hona joale se ntseng se sebetsoa le ho ngolisoa se fumanehang.
EFAULT
litsela tse tsamaeang ka ntle ho sebaka sa hau sa aterese.
ELOOP
Likhokahanyo tse ngata tsa tšoantšetso li ile tsa kopana le ho rarolla tsela , kapa O_NOFOLLOW e boletsoeng empa lebitso la tsela e ne e le khokahanyo ea tšoantšetso.
ENOSPC
tsela e ne e lokela ho bōptjoa empa sesebelisoa se nang le pathname ha se na sebaka sa file e ncha.
ENOMEM
Khopotso e sa lekaneng ea kernel e ne e fumaneha.
EMFILE
Tshebetso e se e na le palo e kholo ea lifaele tse butsoeng.
ENFILE
Tekanyo ea palo eohle ea lifaele tse bulehileng tsamaisong e fihlile.
E lumellana le
SVr4, SVID, POSIX, X / OPEN, BSD 4.3 Lipapaka tsa O_NOFOLLOW le O_DIRECTORY ke Linux-tse khethehileng. E mong a ka 'na a tlameha ho hlalosa _GNU_SOURCE macro ho fumana litlhaloso tsa bona.
Lithibelo
Ho na le mefokolo e mengata ea protocol e thehiloeng ho NFS, e amang har'a O_SYNC le O_NDELAY .
POSIX e fana ka mefuta e meraro e sa tšoaneng ea I / O e lumellanang, e tsamaellanang le lifolakha O_SYNC , O_DSYNC le O_RSYNC . Hona joale (2.1.130) tsena kaofela li tšoana le tlas'a Linux.