Skip to main content

Linux కమాండ్ మరియు Unix కమాండ్ను తెరవండి

Anonim

సంక్షిప్తముగా

# ఉన్నాయి # ఉన్నాయి # ఉన్నాయి Int ఓపెన్ (కాన్స్ట్ చార్ * పాత్ , int జెండాలు ); Int ఓపెన్ (కాన్స్ట్ చార్ * పాత్ , int జెండాలు , mode_t మోడ్ ); int creat (const char * పాత్ , mode_t మోడ్ );

వివరణ

దిఓపెన్ () సిస్టమ్ కాల్ linux ఆదేశం ఒక పాత్ పేరును ఫైలు వివరణగా మార్చటానికి ఉపయోగించబడుతుంది (తరువాతి I / O లో ఉపయోగించటానికి ఒక చిన్న, నాన్-నెగెటివ్ పూర్ణాంకం చదవండి, వ్రాయడానికి, మొదలైనవి). కాల్ విజయవంతం అయినప్పుడు, ఫైలు వర్ణన విధానంలో ప్రస్తుతం తెరవబడని అత్యల్ప ఫైల్ వర్ణనను విక్రయించింది. ఈ కాల్ కొత్త ఓపెన్ ఫైల్ను సృష్టిస్తుంది, ఏ ఇతర ప్రక్రియతో భాగస్వామ్యం చేయబడదు. (కానీ ఓపెన్ ఫైల్స్ పంచుకోవచ్చు ద్వారా సంభవించవచ్చుఫోర్క్(2) సిస్టమ్ కాల్.) కొత్త ఫైల్ వర్ణన కార్యనిర్వహణ కార్యక్రమాలలో తెరవటానికి సిద్ధంగా ఉంది (చూడండిfcntl(2)). ఫైలు ఆఫ్సెట్ ఫైల్ ప్రారంభంలో సెట్ చేయబడింది.

పరామితి జెండాలు ఒకటిO_RDONLY, O_WRONLY లేదాO_RDWR ఏ ఫైల్ చదవడానికి-మాత్రమే, రాయడం-మాత్రమే లేదా వ్రాయడం / రాయడం, అభ్యర్థన, లేదా 'సున్నా లేదా క్రింది వాటిలో మరిన్ని:

O_CREAT

ఫైలు లేకపోతే అది సృష్టించబడుతుంది. ఫైల్ యొక్క యజమాని (వినియోగదారు ID) ప్రక్రియ యొక్క ప్రభావవంతమైన వినియోగదారు ID కు సెట్ చేయబడింది. సమూహం యాజమాన్యం (సమూహం ID) ప్రక్రియ యొక్క సమర్థవంతమైన సమూహం ID లేదా పేరెంట్ డైరెక్టరీ సమూహం ID కు అమర్చబడుతుంది (ఫైల్ వ్యవస్థ రకం మరియు మౌంట్ ఎంపికల ఆధారంగా మరియు పేరెంట్ డైరెక్టరీ యొక్క మోడ్, ఉదా, మౌంట్ ఎంపికలు bsdgroups మరియు sysvgroups లో వివరించిన విధంగా ext2 ఫైల్సిస్టమ్ యొక్కమౌంట్(8)).

O_EXCL

ఉపయోగించినప్పుడుO_CREAT, ఫైల్ ఇప్పటికే ఉన్నట్లయితే అది లోపం మరియుఓపెన్ విఫలమవుతుంది. ఈ సందర్భంలో, ఒక సంకేత లింక్ ఉంది, దానితో సంబంధం లేకుండా దాని పాయింట్లు.O_EXCL NFS ఫైల్ సిస్టమ్స్ మీద విచ్ఛిన్నమై ఉంది, లాకింగ్ పనులను నిర్వహించడానికి దానిపై ఆధారపడిన ప్రోగ్రామ్లు రేస్ స్థితిని కలిగి ఉంటాయి. లాక్ ఫైల్ను ఉపయోగించి అటామిక్ ఫైల్ లాకింగ్ను నిర్వహించడానికి పరిష్కారం అదే ఫేజ్లో ఒక ప్రత్యేకమైన ఫైల్ను సృష్టించడం (ఉదా., హోస్ట్ పేరు మరియు పిడ్ను చేర్చుకోవడం), లాక్ఫైల్కు లింక్ను చేయడానికి లింక్ (2) ను ఉపయోగించండి. ఉంటేలింక్ () లాక్ 0 అవుతుంది, లాక్ విజయవంతమైంది. లేకపోతే, ఉపయోగించండి stat(2) దాని లింక్ సంఖ్య 2 కు పెరిగితే తనిఖీ చేయడానికి ప్రత్యేకమైన ఫైలులో, ఈ సందర్భంలో లాక్ కూడా విజయవంతమైంది.

O_NOCTTY

ఉంటే పాత్ ఒక టెర్మినల్ పరికరాన్ని సూచిస్తుంది --- చూడండిtty(4) --- ప్రక్రియ ఒక్కటే కాకపోయినా అది ప్రక్రియ యొక్క నియంత్రణ టెర్మినల్ కావు.

O_TRUNC

ఫైలు ఇప్పటికే ఉన్నట్లయితే మరియు ఒక సాధారణ ఫైల్ మరియు ఓపెన్ మోడ్ వ్రాయడం అనుమతిస్తుంది (అంటే, O_RDWR లేదా O_WRONLY) ఇది పొడవు 0 కు తగ్గించబడుతుంది. ఫైల్ FIFO లేదా టెర్మినల్ పరికరం ఫైల్ అయితే, O_TRUNC ఫ్లాగ్ నిర్లక్ష్యం చెయ్యబడుతుంది. లేకపోతే, O_TRUNC యొక్క ప్రభావం పేర్కొనబడలేదు. (అనేక Linux సంస్కరణల్లో ఇది విస్మరించబడుతుంది, ఇతర రూపాల్లో, ఇది లోపాన్ని తిరిగి ఇస్తుంది.)

O_APPEND

ఫైలు అనుబంధ రీతిలో తెరవబడింది. ప్రతి ముందువ్రాయడానికి, ఫైలు పాయింటర్ ఫైలు చివరలో స్థానంలో, వంటి ఉంటేlseek. O_APPEND ఒకటి కంటే ఎక్కువ ప్రక్రియ ఒకేసారి ఫైల్కు డేటాను అనుసంధానించినట్లయితే, NFS ఫైల్ వ్యవస్థల్లో పాడైన ఫైల్లకు దారి తీయవచ్చు. ఎన్ఎఫ్ఎస్ ఫైల్కు అనుసంధానించడానికి మద్దతు ఇవ్వదు కాబట్టి, క్లయింట్ కెర్నెల్ దానిని అనుకరించేది, ఇది ఒక రేసు స్థితి లేకుండా చేయలేము.

O_NONBLOCK లేదాO_NDELAY

వీలైతే, ఫైల్ నిరోధించని రీతిలో తెరవబడుతుంది. ఏదిఓపెన్ లేదా తిరిగి ఇవ్వబడిన ఫైల్ వర్ణనలో తదుపరి తదుపరి కార్యకలాపాలు కాలింగ్ ప్రక్రియను వేచి ఉంచుతాయి. FIFO ల (పైపులు అనే పేరు) నిర్వహణ కొరకు, చూడండిFIFO(4). ఈ మోడ్ FIFO ల కంటే ఇతర ఫైళ్ళపై ఎటువంటి ప్రభావాన్ని కలిగి ఉండదు.

O_SYNC

ఫైలు సమకాలీకరణ I / O కోసం తెరవబడింది. ఏవ్రాయడానికిడేటా భౌతికంగా అంతర్లీన హార్డ్వేర్కు రాసే వరకు కాలింగ్ ప్రాసెసర్లో కాలింగ్ ప్రక్రియను బ్లాక్ చేస్తుంది. దిగువ RESTRICTIONS ను చూడండి.

O_NOFOLLOW

ఉంటే పాత్ ఒక సింబాలిక్ లింక్, అప్పుడు ఓపెన్ విఫలమైతే. ఇది FreeBSD పొడిగింపు, ఇది వెర్షన్ 2.1.0.0 లో లైనక్స్కు జోడించబడింది. పాత్ పేరు యొక్క మునుపటి భాగాలలో లాంఛనప్రాయ లింక్లు ఇప్పటికీ అనుసరించబడతాయి. Glibc 2.0.100 నుంచి వచ్చిన శీర్షికలు మరియు తర్వాత ఈ జెండా యొక్క నిర్వచనం ఉన్నాయి; 2.1.126 కి ముందు కెర్నలు ఉపయోగించినట్లయితే ఇది విస్మరిస్తుంది .

O_DIRECTORY

ఉంటే పాత్ డైరెక్టరీ కాదు, ఓపెన్ విఫలం కావచ్చు. ఈ జెండా Linux-specific, మరియు కెర్నెల్ వర్షన్ 2.1.126 నందు జతచేయబడింది, త్రోసిపుల్-సేవ-సేవ సమస్యలను నివారించుటకుopendir(3) FIFO లేదా టేప్ పరికరాన్ని పిలుస్తారు, కానీ దాన్ని అమలు చేయకుండా ఉపయోగించకూడదుopendir.

O_DIRECT

I / O యొక్క కాష్ ప్రభావాలను ఈ ఫైల్ నుండి మరియు దాని నుండి తగ్గించుటకు ప్రయత్నించండి. సాధారణంగా ఇది పనితీరును అధోకరణం చేస్తుంది, కాని ప్రత్యేక సందర్భాల్లో ఇది ఉపయోగకరంగా ఉంటుంది, అప్లికేషన్లు తమ సొంత క్యాచింగ్ చేసినప్పుడు. ఫైల్ I / O యూజర్ స్పేస్ బఫర్ల నుండి / నేరుగా చేయబడుతుంది. I / O సమకాలికమైనది, అనగా, పూర్తి అయినప్పుడు చదవండి(2) లేదావ్రాయడానికి(2) సిస్టమ్ కాల్, డేటా బదిలీ హామీ. బదిలీ పరిమాణాలు, మరియు వినియోగదారు బఫర్ మరియు ఫైల్ ఆఫ్సెట్ యొక్క అమరిక అన్ని ఫైల్ సిస్టమ్ యొక్క లాజికల్ బ్లాక్ పరిమాణాల గుణకాలుగా ఉండాలి.ఈ జెండా అనేక Unix- వంటి వ్యవస్థలపై మద్దతు ఇస్తుంది; కెర్నల్ వర్షన్ 2.4.10 లో లైనక్సు కింద మద్దతు జతచేయబడింది.బ్లాక్ పరికరాలకు అర్థ వివరణాత్మక ఇంటర్ఫేస్ లో వివరించబడిందిముడి(8).

O_ASYNC

సిగ్నల్ ను సృష్టించండి (అప్రమేయంగా SIGIO, కానీ దీనిని మార్చవచ్చుfcntl(2)) ఇన్పుట్ లేదా అవుట్పుట్ ఈ ఫైలు వర్ణనలో సాధ్యమవుతుంది. ఈ లక్షణం టెర్మినల్స్, నకిలీ-టెర్మినల్స్ మరియు సాకెట్ల కోసం మాత్రమే అందుబాటులో ఉంది. చూడండిfcntl(2) మరిన్ని వివరాలు కోసం.

O_LARGEFILE

లార్జ్ ఫైల్స్ సిస్టంకు మద్దతు ఇచ్చే 32-బిట్ సిస్టమ్స్లో, 31 ​​బిట్స్ తెరవటానికి కావలసిన పరిమాణాల సంఖ్యను అనుమతించకూడదు.

ఈ ఐచ్ఛిక జెండాలు కొన్ని ఉపయోగించి మార్చబడతాయిfcntl ఫైల్ తెరిచిన తర్వాత.

వాదన మోడ్ క్రొత్త ఫైల్ సృష్టించిన సందర్భంలో ఉపయోగించడానికి అనుమతులను పేర్కొంటుంది. ఇది ప్రక్రియ ద్వారా సవరించబడిందిumask సాధారణ మార్గంలో: రూపొందించినవారు ఫైలు యొక్క అనుమతులు ఉన్నాయి(మోడ్ & ~ umask). కొత్తగా సృష్టించిన ఫైలు యొక్క భవిష్యత్తు యాక్సెస్కు మాత్రమే ఈ మోడ్ వర్తిస్తుంది; దిఓపెన్చదువుట-మాత్రమే ఫైలు సృష్టించే కాల్ బాగా చదివే / వ్రాసే ఫైలు వర్ణనను తిరిగి పొందవచ్చు.

కింది సంకేత స్థిరాంకాలు అందించబడతాయి మోడ్ :

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 ఇతరులు అనుమతిని అమలు చేసారు

మోడ్ ఎప్పుడు పేర్కొనబడాలిO_CREAT ఉంది జెండాలు , మరియు లేకపోతే నిర్లక్ష్యం.

సృష్టిస్తుంది సమానంఓపెన్ తో జెండాలు సమానంగాO_CREAT | O_WRONLY | O_TRUNC.

VALUE తిరిగి పొందండి

ఓపెన్ మరియుసృష్టిస్తుంది ఒక కొత్త దోషం సంభవించినట్లయితే, కొత్త ఫైలు వర్ణనను, లేదా -1 ను రిటర్న్ చేయండి (ఈ సందర్భంలో, errno సరిగ్గా సెట్ చేయబడింది). గమనించండిఓపెన్ పరికరం ప్రత్యేక ఫైళ్ళను తెరవగలదు, కానీసృష్టిస్తుంది వాటిని సృష్టించలేరు - ఉపయోగంmknod(2) బదులుగా.

UID మ్యాపింగ్తో NFS ఫైల్ సిస్టమ్స్ ప్రారంభించబడి,ఓపెన్ ఫైల్ వివరణను తిరిగి పొందవచ్చు, కానీ ఉదా. చదవండి(2) అభ్యర్థనలు తిరస్కరించబడ్డాయిEACCES. క్లయింట్ అమలుచేస్తుంది కనుక ఇదిఓపెన్ అనుమతులను తనిఖీ చేయడం ద్వారా, కానీ చదివే మరియు వ్రాసే అభ్యర్థనల ఆధారంగా సర్వర్ ద్వారా UID మ్యాపింగ్ను నిర్వహిస్తారు.

ఫైలు కొత్తగా సృష్టించబడితే, దాని సమయము, ctime, mtime క్షేత్రాలు ప్రస్తుత సమయానికి అమర్చబడతాయి మరియు తద్వారా పేరెంట్ డైరెక్టరీ యొక్క ctime మరియు mtime ఖాళీలను ఉన్నాయి. లేకపోతే, O_TRUNC జెండా కారణంగా ఫైల్ మార్పు చేయబడి ఉంటే, దాని ctime మరియు mtime ఖాళీలను ప్రస్తుత సమయానికి సెట్ చేయబడతాయి.

లోపాలు

EEXIST

పాత్ ఇప్పటికే ఉంది మరియుO_CREAT మరియుO_EXCL ఉపయోగింపబడినవి.

EISDIR

పాత్ ఒక డైరెక్టరీ మరియు యాక్సెస్ ప్రవేశం రచన అభ్యర్థించిన సూచిస్తుంది (అనగా,O_WRONLY లేదాO_RDWR సెట్ చేయబడింది).

EACCES

ఫైల్కు అభ్యర్థించిన యాక్సెస్ అనుమతించబడదు లేదా డైరెక్టరీలలో ఒకటి పాత్ శోధన (అమలు) అనుమతిని అనుమతించలేదు లేదా ఫైల్ ఇంకా ఉనికిలో లేదు మరియు పేరెంట్ డైరెక్టరీకి వ్రాసే యాక్సెస్ అనుమతించబడదు.

ENAMETOOLONG

పాత్ చాలా పొడవుగా ఉంది.

ENOENT

O_CREAT సెట్ చేయబడలేదు మరియు పేరు పెట్టబడిన ఫైల్ లేదు. లేదా, డైరెక్టరీ భాగం పాత్ ఉనికిలో లేదు లేదా ఒక డాంగ్లింగ్ సింబాలిక్ లింక్.

ENOTDIR

డైరెక్టరీగా ఉపయోగించిన ఒక భాగం పాత్ వాస్తవానికి, ఒక డైరెక్టరీ లేదా కాదుO_DIRECTORYపేర్కొనబడింది మరియు పాత్ డైరెక్టరీ కాదు.

ENXIO

O_NONBLOCK | O_WRONLY సెట్ చేయబడితే, పేరు పెట్టబడిన ఫైల్ FIFO మరియు ప్రాసెస్లో ఫైల్ చదవడం కోసం తెరవబడదు. లేదా, ఫైల్ పరికరం ప్రత్యేక ఫైలు మరియు సంబంధిత పరికరం లేదు.

ENODEV

పాత్ పరికర ప్రత్యేక ఫైలు సూచిస్తుంది మరియు సంబంధిత పరికరం లేదు. (ఇది లినక్స్ కెర్నల్ బగ్ - ఈ సందర్భంలో ఎన్సైయో తిరిగి పొందాలి.)

EROFS

పాత్ చదువుట-మాత్రమే ఫైల్సిస్టమ్పై ఫైల్ను సూచిస్తుంది మరియు వ్రాసే యాక్సెస్ అభ్యర్థించబడింది.

ETXTBSY

పాత్ అమలు చేయబడుతున్న ఒక ఎక్జిక్యూటబుల్ ఇమేజ్ని సూచిస్తుంది మరియు వ్రాసే యాక్సెస్ అభ్యర్థించబడింది.

EFAULT

పాత్ మీ ప్రాప్తి చేయగల చిరునామా స్థలానికి వెలుపల పాయింట్లు.

ELOOP

పరిష్కారంలో చాలా సింబాలిక్ లింక్లు ఎదురయ్యాయి పాత్ , లేదాO_NOFOLLOW పేర్కొనబడింది కానీ పాత్ ఒక సింబాలిక్ లింక్.

ENOSPC

పాత్ సృష్టించబడింది కానీ కలిగి ఉన్న పరికరం పాత్ క్రొత్త ఫైల్ కోసం గది లేదు.

ENOMEM

తగినంత కెర్నెల్ మెమరీ అందుబాటులో లేదు.

EMFILE

ప్రక్రియ ఇప్పటికే గరిష్ట సంఖ్య ఫైళ్ళను తెరిచి ఉంది.

ENFILE

వ్యవస్థలో తెరిచిన మొత్తం ఫైళ్ళ పరిమితి చేరుకుంది.

అనుగుణంగా

SVr4, SVID, POSIX, X / ఓపెన్, BSD 4.3 దిO_NOFOLLOW మరియుO_DIRECTORY జెండాలు లైనక్స్-నిర్దిష్టంగా ఉంటాయి. ఒక నిర్వచించవలసి ఉంటుంది_GNU_SOURCE స్థూల వారి నిర్వచనాలు పొందడానికి.

పరిమితులు

ప్రోటోకాల్ అంతర్లీన NFS లో అనేక infelicities ఉన్నాయి, ఇతరులలో ప్రభావితంO_SYNC మరియుO_NDELAY.

POSIX సమకాలీకరించిన I / O యొక్క మూడు విభిన్న రకాలైన, ఫ్లాగ్లకు అనుగుణంగా అందిస్తుందిO_SYNC , O_DSYNC మరియు O_RSYNC. ప్రస్తుతం (2.1.130) ఈ అన్ని Linux కింద పర్యాయపదంగా ఉన్నాయి.