Ionnsaich an Command Command Linux Fosgailte

Synopsis

#include << A HREF = "file: /usr/include/sys/types.h"> sys / types.h> #include << A HREF = "file: /usr/include/sys/stat.h"> sys / stat.h> #include << A HREF = "file: /usr/include/fcntl.h"> fcntl.h> int open (const char * pathname , int flags ); int fosgailte (const char * pathname , int bragaichean, modh mode_t ); int crutha (const char * pathname , mode_t mode );

Tuairisgeul

Tha an siostam fosgailte () a 'tadhal air òrdugh linux air a chleachdadh gus ainm-slighe a thionndadh gu tuairisgeul faidhle (sloinneadh beag, neo-àicheil airson a chleachdadh ann an I / O às dèidh sin mar le leughadh , sgrìobhadh , msaa). Nuair a bhios an gairm soirbheachail, is e tuairisgeul nam faidhlichean a thèid a thilleadh mar an tuairisgeul faidhlichean as ìsle nach eil fosgailte don phròiseas an-dràsta. Tha an gairm seo a 'cruthachadh faidhle fosgailte ùr, gun a bhith air a cho-roinn le pròiseas sam bith eile. (Ach dh'fhaoidte gun nochd faidhlichean fosgailte a-steach tron ​​cheangal siostam fork (2).) Tha tuairisgeul nam faidhlichean ùr a 'dol air adhart fosgailte thairis air gnìomhan exec (faic fcntl (2)). Tha am faidhle a chaidh a cho-dhùnadh stèidhichte aig toiseach a 'bhileig.

Tha na brataichean paramadair air aon de O_RDONLY , O_WRONLY no O_RDWR a dh 'iarras an fhosgladh a-mhàin a leughadh, a-mhàin a sgrìobhadh no a leughadh / a sgrìobhadh, fa leth, gu soilleir - no ' d le neoni no barrachd de na leanas:

O_CREAT

Mura h-eil am faidhle ann, thèid a chruthachadh. Tha an sealbhadair (ID a 'chleachdaiche) den fhaidhle air a shuidheachadh chun an neach-cleachdaidh èifeachdach den phròiseas. Tha sealbh a 'chuantail (ID buidhne) air a shuidheachadh an aon chuid gu ID buidhne èifeachdach a' phròiseis no ri ID buidhne an eòlaire phàrant (a rèir seòrsa siostam faidhlichean agus roghainnean roghainnean, agus modh an eòlaire phàrant, faic, me, an sliabh roghainnean bsdgroups agus sysvgroups den fhaidhle faidhle ext2, mar a chaidh a mhìneachadh ann an mount (8)).

O_EXCL

Nuair a thèid a chleachdadh le O_CREAT , ma tha an fhaidhle ann mu thràth, is e mearachd a th 'ann agus fàillidh an fhosgladh . Anns a 'cho-theacsa seo, tha ceangal samhlachail ann, ge bith càite a bheil e ag amas. Thèid O_EXCL a bhriseadh air siostaman faidhlichean NFS , bidh prògram rèis ann le prògraman a tha an urra ris airson gnìomhan glasaidh. Is e am fuasgladh airson a bhith a 'glasadh fhaidhlichean atamach a' cleachdadh glas-chlàr gus faidhle sònraichte a chruthachadh air an aon fs (me, a 'gabhail a-steach ainm-aoigheachd agus pid), ceangal a chleachdadh (2) gus ceangal a dhèanamh ris a' ghlas. Ma tha ceangal () a ' tilleadh 0, tha an glas soirbheachail. Air an làimh eile, cleachd stat (2) air an fhaidhle àraidh gus faighinn a-mach a bheil an ceangal aice air a dhol suas gu 2, agus mar sin bidh an glas soirbheachail.

O NOCTTY

Ma tha an t-ainm-slighe a ' toirt iomradh air inneal deireannach --- faic tty (4) --- cha bhith e na phròiseas smachdachaidh a' phròiseas eadhon ged nach eil fear aig a 'phròiseas.

O_TRUNC

Ma tha am faidhle mu thràth agus gu bheil e na fhaidhle cunbhalach agus ma tha am modh fosgailte a 'ceadachadh sgrìobhadh (is e sin, O_RDWR no O_WRONLY) thèid a chuir dheth gu fad 0. Ma tha am faidhle na faidhle FIFO no inneal ceann-uidhe, thèid am bratach O_TRUNC a thoirt seachad. Air an làimh eile, tha buaidh O_TRUNC neo-shònraichte. (Air iomadh tionndadh Linux thèid a leigeil seachad; air tionndaidhean eile, tillidh e mearachd.)

O_APPEND

Tha am faidhle air fhosgladh ann am modh ath-nuadhachail. Mus do sgrìobh iad , tha am faidhle air a shuidheachadh aig deireadh na faidhle, mar gum biodh e le lseek . Dh'fhaodadh gun toir O_APPEND faidhlichean truaillidh air siostaman faidhle NFS ma tha barrachd air aon phròiseas a 'cur dàta ri faidhle air an aon àm. Tha seo air sgàth 's gu bheil NFS a' toirt taic do bhith ag iarraidh faidhle, mar sin feumaidh einnsearan an luchd-dèiligidh a samhlachadh, nach fhaodar a dhèanamh às aonais suidheachadh cinnidh.

O_NONBLOCK no O_NDELAY

Nuair as urrainnear, thèid am faidhle fhosgladh ann am modh neo-bacadh. Cha leig na gnìomhan fosgailte no a-rithist às an tuairisgeul fhaidhlichean a thilleas air a 'chùis glanaidh feitheamh. Airson làimhseachadh FIFO (pìoban ainmichte), faic cuideachd còig (4). Chan fheum am modh seo buaidh sam bith a thoirt air faidhlichean a bharrachd air FIFOs.

O_SYNC

Tha am faidhle air a fosgladh airson I / O sìmplidh. Cuiridh neach sam bith a sgrìobhas air an tuairisgeul faidhlichean a dh 'fhalbh am pròiseas glanaidh gus am bi an dàta air a sgrìobhadh gu corporra ris a' chruaidh-chruaidh cruaidh. Faic CEARTAN gu h-ìosal, ge-tà.

O CHAICHEAN

Ma tha an t-ainm-slighe na cheangal samhlachail, ma dh'fhàillidh an fhosgladh. Is e seo leudachadh FreeBSD, a chaidh a chur ri Linux ann an dreach 2.1.126. Thèid ceanglaichean samhlachail ann an co-phàirtean nas tràithe den t-ainm-slighe a leantainn fhathast. Bidh na cinn bho glibc 2.0.100 agus an dèidh sin a 'toirt a-steach mìneachadh den bhratach seo; Leigidh craobhan ro 2.1.126 e ma thèid a chleachdadh .

O_DIRECTORY

Mura h-eil an t-ainm-slighe ann am pasgan, cuir às do dh'fhosgladh a-mach. Tha am bratach seo gu sònraichte le Linux, agus chaidh a chur ris an dreach 2.1.126, gus duilgheadasan dìomhaireachd a sheachnadh ma thèid ospadal (3) a ghairm air inneal FIFO no teip, ach nach bu chòir a chleachdadh taobh a-muigh buileachadh an taghaidh S an Iar-

O_DIRECT

Feuch ri lùghdachadh a dhèanamh air buaidhean taisgse an I / O gu agus bhon fhaidhle seo. Anns an fharsaingeachd, bidh seo a 'meadhanach coileanaidh, ach tha e feumail ann an suidheachaidhean sònraichte, mar nuair a bhios tagraidhean a' dèanamh an cuid càcaireachd fhèin. Faidhle Tha I / O air a dhèanamh gu dìreach gu / bho buffers space space. Tha an I / O sìmplidh, ie, nuair a bhios an t-siostam air a leughadh (2) no a sgrìobhadh (2) air a chrìochnachadh, tha dàta cinnteach gun deach a ghluasad. Feumaidh meudan gluasaid, agus co-thaobhadh bufair an luchd-cleachdaidh agus faidhlichean faidhlichean a bhith nan iomadan de bhloc loidhcigeach an t-siostaim fhaidhlichean.
Tha am bratach seo a 'faighinn taic air grunn shiostaman coltach ri Unix; chaidh taic a thoirt fo Linux ann an dreach 2.4.10.
Thathas a 'toirt iomradh air eadar-aghaidh semantically den aon seòrsa airson innealan bloca ann an amh (8).

O_ASYNC

Dèan comharra (SIGIO gu h-àbhaisteach, ach faodar seo atharrachadh tro fcntl (2)) nuair a thèid a thoirt a-steach no a thoirt a-mach air an tuairisgeul seo. Chan eil am feart seo ri fhaighinn ach airson crìochan, crìochan-crith, agus sockets. Faic fcntl (2) airson tuilleadh fiosrachaidh.

O_LARGEFILE

Air siostaman 32-bit a tha a 'toirt taic don Siostam Faidhlichean Mòra, cead a thoirt do fhaidhlichean aig nach eil meudan air an riochdachadh ann an 31 bata ri fhosgladh.

Faodar cuid de na brataichean roghainneil sin atharrachadh le fcntl an dèidh dhan fhaidhle fhosgladh.

Tha am modal argamaid a ' sònrachadh nan ceadan airson a chleachdadh ma tha faidhle ùr air a chruthachadh. Tha e air atharrachadh le umask a 'phròiseis san dòigh àbhaisteach: tha ceadan an fhaidhle cruthaichte (modh & ~ umask) . Thoir an aire nach eil am modh seo a 'buntainn ach ri ruigsinneachd san fhaidhle ùr a chaidh a chruthachadh; faodaidh an gairm fhosgailte a chruthaicheas faidhle leughaidh a-mhàin tuairisgeul faidhlichean leughaidh / sgrìobhaidh a thilleadh.

Tha na cunntasan samhlachail a leanas air an solarachadh airson modh :

S_IRWXU

Tha neach-cleachdaidh 00700 (sealbhadair le faidhlichean) air cead a leughadh, a sgrìobhadh agus a thoirt gu buil

S_IRUSR (S_IREAD)

Tha 00400 neach-cleachdaidh air cead a leughadh

S_IWUSR (S_IWRITE)

Tha cead aig neach-cleachdaidh 00200 cead sgrìobhaidh

S_IXUSR (S_IEXEC)

Tha neach-cleachdaidh 00100 air cead a dhèanamh

S_IRWXG

Tha buidheann 00070 air cead a leughadh, a sgrìobhadh agus a thoirt gu buil

S_IRGRP

Tha cead aig buidheann4040 leugh

S_IWGRP

Tha cead sgrìobhaidh aig 00020

S_IXGRP

Tha buidheann 00010 air cead a dhèanamh

S_IRWXO

00007 tha feadhainn eile air cead a leughadh, a sgrìobhadh agus a thoirt gu buil

S_IROTH

00004 tha cuid eile air cead a leughadh

S_IWOTH

00002 tha cuid eile aig a bheil cead sgrìobhaidh

S_IXOTH

00001 feadhainn eile air cead a dhèanamh

Feumaidh modh a bhith air a shònrachadh nuair a tha O_CREAT anns na brataichean , agus tha e air a thoirt seachad air dhòigh eile.

cruthachail co-ionann ri fosgladh le brataichean co-ionann ri O_CREAT | O_WRONLY | O_TRUNC .

DÈANAMH FHIOSRACHADH

fosgail agus cruthaidh tuairisgeul an fhaidhle ùr, no -1 ma thachair mearachd (anns a 'chùis seo, thèid errno a shuidheachadh gu h-iomchaidh). Thoir fa-near gum faod fosgail faidhlichean sònraichte innealan fhosgladh, ach chan urrainn do chruthachas a chruthachadh iad - cleachd mknod (2) an àite sin.

Air siostaman faidhlichean NFS le comasachadh mapadh UID, dh'fhaoidte gun nochd e tuairisgeul faidhle ach me leugh (2) iarrtasan le EACCES . Tha seo air sgàth 's gu bheil an neach-dèiligidh a' fosgladh le bhith a 'sgrùdadh nan ceadan, ach tha am frithealaiche a' dèanamh mapadh UID às dèidh iarrtasan a leughadh agus a sgrìobhadh.

Ma tha am faidhle air a chruthachadh o chionn ghoirid, tha an atime, ctime, achaidhean mtime air an suidheachadh chun an latha an-dràsta, agus mar sin tha raointean ctime agus mtime aig an eòlaire phàrant. Air an làimh eile, ma thèid am faidhle atharrachadh mar thoradh air bratach O_TRUNC, tha a raointean ctime agus mtime air an suidheachadh chun an ama an-dràsta.

Errors

EEXIST

tha ainm-slighe ann mu thràth agus chaidh O_CREAT agus O_EXCL a chleachdadh.

EISDIR

tha ainm-ainm a ' toirt iomradh air eòlaire agus tha an inntrigeadh a tha a dhìth air sgrìobhadh (sin, O_WRONLY no O_RDWR air a shuidheachadh).

EACCES

Chan eil an t-iarrtas a dh 'iarr thu air an fhaidhle ceadaichte, no cha do leig aon de na seòlaidhean ann an ainm cead cead (cuir an gnìomh) cead, no cha robh am faidhle fhathast ann agus chan eil cead aig an eòlaire phàrant a bhith a' sgrìobhadh ruigsinneachd.

ENAMETOOLONG

bha an t-ainm-slighe ro fhada.

A 'DÈANAMH

Chan eil O_CREAT air a shuidheachadh agus chan eil am faidhle ainmichte ann. No, chan eil comharra eòlaire ann an ainm-ainm ann no tha e na cheangal samhlachail.

ENOTDIR

Chan eil com-pàirt a chaidh a chleachdadh mar eòlaire ann an ainm-slighe , gu dearbh, air a bhith ann an eòlaire, no O_DIRECTORY agus cha b 'e seòladh a bha ann an ainm-ainm .

ENXIO

O_NONBLOCK | Tha O_WRONLY air a shuidheachadh, is e FIFO am faidhle ainmichte agus chan eil am faidhle air fhàgail airson leughadh. No, is e faidhle sònraichte inneal a tha anns an fhaidhle agus chan eil inneal co-ionann ann.

ENODEV

tha ainm-slighe a ' toirt iomradh air faidhle sònraichte uidheam agus chan eil inneal co-fhreagairt ann. (Is e seo a 'bhìoras craicinn Linux - san t-suidheachadh seo feumaidh ENXIO a thilleadh.)

EROFS

tha ainm-frithealaidh a ' toirt iomradh air faidhle air siostam faidhlichean le leughadh a-mhàin agus sgrìobhadh air iarrtas iarraidh.

Ceanglaichean RSS

tha ainm-slighe a ' toirt iomradh air ìomhaigh gnìomhach a tha an-dràsta ga chur gu bàs agus a' sgrìobhadh ruigsinneachd air iarraidh.

EFAULT

tha ainm-slighe a ' comharrachadh taobh a-muigh an àite seòlaidh so-ruigsinn.

EILEANACH

Chaidh cus cheanglaichean samhlachail a lorg ann a bhith a 'fuasgladh ainm-slighe , no chaidh O_NOFOLLOW a shònrachadh ach bha an t-ainm-slighe na cheangal samhlachail.

ENOSPC

chaidh an t-ainm-slighe a chruthachadh ach chan eil àite san inneal anns a bheil ainm-slighe airson an fhaidhle ùr.

ENOMEM

Cha robh cuimhne crann-uidheam gu leòr ri fhaighinn.

FREAGAIRT

Tha an àireamh as motha de fhaidhlichean fosgailte sa phròiseas mu thràth.

ENFILE

Chaidh an crìochan air àireamh iomlan nan faidhlichean a tha fosgailte air an t-siostam a ruighinn.

A 'co-fhreagairt

SVr4, SVID, POSIX, X / OPEN, BSD 4.3 Tha brataichean O_NOFOLLOW agus O_DIRECTORY Linux -specific. Dh'fhaoidte gum bi agad ri macro _GNU_SOURCE a mhìneachadh gus am mìneachadh fhaighinn.

Srian

Tha mòran mì-fhaireachdainn anns a 'phròtacal fo NFS, a' toirt buaidh air feadhainn eile O_SYNC agus O_NDELAY .

Tha POSIX a 'toirt seachad trì diofar eadar-dhealachaidhean de I / O air a shònrachadh, a rèir nan brataichean O_SYNC , O_DSYNC agus O_RSYNC . An-dràsta (2.1.130) tha iad sin uile co-ionnan fo Linux.