ಲಿನಕ್ಸ್ ಕಮಾಂಡ್ ಓಪನ್ ಅನ್ನು ತಿಳಿಯಿರಿ

ಸಾರಾಂಶ

# ಸೇರಿವೆ << ಎ HREF = "ಫೈಲ್: /usr/include/sys/types.h"> sys / types.h> # ಸೇರಿವೆ << ಎ HREF = "ಫೈಲ್: /usr/include/sys/stat.h"> sys / stat.h> # ಸೇರಿವೆ << ಎ HREF = "file: /usr/include/fcntl.h"> fcntl.h> ಇಂಟ್ ತೆರೆದ (const char * pathname , int flags ); ಇಂಟ್ ತೆರೆದ (ಕಾನ್ಸ್ ಚಾರ್ * ಪಥನಾಮ , ಇಂಟ್ ಫ್ಲ್ಯಾಗ್ಗಳು , ಮೋಡ್_ಟ್ ಮೋಡ್ ); ಇಂಟ್ ಸೃಷ್ಟಿಕರ್ತ (const char * pathname , mode_t ಮೋಡ್ );

ವಿವರಣೆ

ತೆರೆದ () ಸಿಸ್ಟಮ್ ಕರೆ ಲಿನಕ್ಸ್ ಆಜ್ಞೆಯನ್ನು ಒಂದು ಪಥದ ಹೆಸರನ್ನು ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ ಆಗಿ ಪರಿವರ್ತಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ ( ಓದಲು , ಬರೆಯಲು , ಇತ್ಯಾದಿಗಳಂತೆ ನಂತರದ I / O ನಲ್ಲಿ ಬಳಸಲು ಸಣ್ಣ, ಅಲ್ಲದ ಋಣಾತ್ಮಕ ಪೂರ್ಣಾಂಕ). ಕರೆ ಯಶಸ್ವಿಯಾದಾಗ, ಫೈಲ್ ವಿವರಣೆಯನ್ನು ಮರಳಿ ಪ್ರಸ್ತುತ ಪ್ರಕ್ರಿಯೆಗೆ ತೆರೆಯದ ಕಡಿಮೆ ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ ಆಗಿರುತ್ತದೆ. ಈ ಕರೆ ಹೊಸ ತೆರೆದ ಫೈಲ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ, ಯಾವುದೇ ಪ್ರಕ್ರಿಯೆಯೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಲಾಗುವುದಿಲ್ಲ. (ಆದರೆ ಹಂಚಿದ ಮುಕ್ತ ಕಡತಗಳು ಫೋರ್ಕ್ (2) ಸಿಸ್ಟಮ್ ಕರೆ ಮೂಲಕ ಉದ್ಭವಿಸಬಹುದು.) ಹೊಸ ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ ಎಕ್ಸೆಕ್ ಫಂಕ್ಷನ್ಗಳಲ್ಲಿ ಮುಕ್ತವಾಗಿ ಉಳಿಯಲು ಹೊಂದಿಸಲಾಗಿದೆ ( fcntl (2) ನೋಡಿ). ಫೈಲ್ ಆಫ್ಸೆಟ್ ಫೈಲ್ನ ಆರಂಭಕ್ಕೆ ಹೊಂದಿಸಲಾಗಿದೆ.

ಪ್ಯಾರಾಮೀಟರ್ ಫ್ಲ್ಯಾಗ್ಗಳು O_RDONLY , O_WRONLY ಅಥವಾ O_RDWR ಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ, ಇದು ಓದುವ-ಮಾತ್ರ, ಬರೆಯುವ-ಮಾತ್ರ ಅಥವಾ ಓದುವ / ಬರೆಯುವ ಕ್ರಮವನ್ನು ಬಿಟ್ವೈಸ್- ಅಥವಾ ಕೆಳಗಿನವುಗಳೊಂದಿಗೆ ಶೂನ್ಯ ಅಥವಾ ಹೆಚ್ಚಿನದರೊಂದಿಗೆ ತೆರೆಯಲು ವಿನಂತಿಸುತ್ತದೆ:

O_CREAT

ಫೈಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದಿದ್ದರೆ ಅದನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ. ಫೈಲ್ನ ಮಾಲೀಕರು (ಬಳಕೆದಾರ ID) ಪ್ರಕ್ರಿಯೆಯ ಪರಿಣಾಮಕಾರಿ ಬಳಕೆದಾರ ID ಗೆ ಹೊಂದಿಸಲಾಗಿದೆ. ಸಮೂಹ ಮಾಲೀಕತ್ವವನ್ನು (ಗುಂಪು ID) ಪ್ರಕ್ರಿಯೆಯ ಪರಿಣಾಮಕಾರಿ ಗುಂಪಿನ ID ಗೆ ಅಥವಾ ಪೋಷಕ ಕೋಶದ ಗುಂಪಿನ ID ಗೆ (ಕಡತವ್ಯವಸ್ಥೆಯ ಪ್ರಕಾರ ಮತ್ತು ಆರೋಹಣ ಆಯ್ಕೆಗಳು ಮತ್ತು ಪೋಷಕ ಕೋಶದ ಪ್ರಕಾರವನ್ನು ಅವಲಂಬಿಸಿ, ನೋಡಿ, ಉದಾಹರಣೆಗೆ, ಮೌಂಟ್ ಅನ್ನು ನೋಡಿ ಮೌಂಟ್ (8) ನಲ್ಲಿ ವಿವರಿಸಿರುವಂತೆ ext2 ಕಡತವ್ಯವಸ್ಥೆಯ ಆಯ್ಕೆಗಳನ್ನು bsdgroups ಮತ್ತು sysvg ಗುಂಪುಗಳು .

O_EXCL

O_CREAT ನೊಂದಿಗೆ ಬಳಸಿದಾಗ, ಫೈಲ್ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ ಅದು ದೋಷವಾಗಿದೆ ಮತ್ತು ತೆರೆದುಕೊಳ್ಳುತ್ತದೆ . ಈ ಸನ್ನಿವೇಶದಲ್ಲಿ, ಸಾಂಕೇತಿಕ ಕೊಂಡಿಯು ಅದರ ಅಂಕಗಳನ್ನು ಎಲ್ಲಿದೆ ಎಂಬುದನ್ನು ಲೆಕ್ಕಿಸದೆ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ. OFSEX ಅನ್ನು NFS ಫೈಲ್ ಸಿಸ್ಟಮ್ಗಳಲ್ಲಿ ಮುರಿಯಲಾಗುತ್ತದೆ, ಲಾಕಿಂಗ್ ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಅದರ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿರುವ ಕಾರ್ಯಕ್ರಮಗಳು ಓಟದ ಸ್ಥಿತಿಯನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆ. ಒಂದು ಲಾಕ್ಫೈಲ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಪರಮಾಣು ಫೈಲ್ ಲಾಕ್ ಮಾಡುವಿಕೆಗೆ ಪರಿಹಾರವೆಂದರೆ ಅದೇ ಎಫ್ಎಸ್ನಲ್ಲಿ (ಉದಾಹರಣೆಗೆ, ಹೋಸ್ಟ್ಹೆಸರು ಮತ್ತು ಪಿಡ್ ಅನ್ನು ಸಂಯೋಜಿಸುವುದು) ಒಂದು ಅನನ್ಯ ಫೈಲ್ ಅನ್ನು ರಚಿಸುವುದು, ಲಾಕ್ಫೈಲ್ಗೆ ಲಿಂಕ್ ಮಾಡಲು ಲಿಂಕ್ (2) ಅನ್ನು ಬಳಸಿ. ಲಿಂಕ್ () 0 ಹಿಂದಿರುಗಿದರೆ, ಲಾಕ್ ಯಶಸ್ವಿಯಾಗಿದೆ. ಇಲ್ಲದಿದ್ದರೆ, ಅದರ ಲಿಂಕ್ ಎಣಿಕೆ 2 ಕ್ಕೆ ಏರಿದೆ ಎಂದು ಪರಿಶೀಲಿಸಲು ಅನನ್ಯ ಫೈಲ್ನಲ್ಲಿ ಸ್ಟ್ಯಾಟ್ (2) ಅನ್ನು ಬಳಸಿ, ಈ ಸಂದರ್ಭದಲ್ಲಿ ಲಾಕ್ ಕೂಡ ಯಶಸ್ವಿಯಾಗಿದೆ.

O_NOCTTY

ಪಥನಾಮವು ಒಂದು ಟರ್ಮಿನಲ್ ಸಾಧನವನ್ನು ಸೂಚಿಸುತ್ತದೆ --- tty (4) --- ನೋಡಿ - ಪ್ರಕ್ರಿಯೆಯು ಒಂದು ಹೊಂದಿರದಿದ್ದರೂ ಸಹ ಇದು ಪ್ರಕ್ರಿಯೆಯ ನಿಯಂತ್ರಣ ಟರ್ಮಿನಲ್ ಆಗುವುದಿಲ್ಲ.

O_TRUNC

ಫೈಲ್ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ ಮತ್ತು ಸಾಮಾನ್ಯ ಫೈಲ್ ಆಗಿದ್ದರೆ ಮತ್ತು ತೆರೆದ ಮೋಡ್ ಬರೆಯುವಿಕೆಯನ್ನು ಅನುಮತಿಸುತ್ತದೆ (ಅಂದರೆ, O_RDWR ಅಥವಾ O_WRONLY) ಇದು ಉದ್ದವನ್ನು 0 ಗೆ ಮೊಟಕುಗೊಳಿಸಲಾಗುತ್ತದೆ. ಫೈಲ್ FIFO ಅಥವಾ ಟರ್ಮಿನಲ್ ಸಾಧನ ಫೈಲ್ ಆಗಿದ್ದರೆ, O_TRUNC ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ. ಇಲ್ಲವಾದರೆ, O_TRUNC ಯ ಪರಿಣಾಮ ಅನಿರ್ದಿಷ್ಟವಾಗಿದೆ. (ಹಲವು ಲಿನಕ್ಸ್ ಆವೃತ್ತಿಗಳಲ್ಲಿ ಇದನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ; ಇತರ ಆವೃತ್ತಿಗಳಲ್ಲಿ, ಅದು ದೋಷವನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ.)

O_APPEND

ಫೈಲ್ ಅನುಬಂಧ ಮೋಡ್ನಲ್ಲಿ ತೆರೆಯಲಾಗಿದೆ. ಪ್ರತಿ ಬರವಣಿಗೆಗೂ ಮುನ್ನ, ಫೈಲ್ ಪಾಯಿಂಟರ್ ಅನ್ನು ಫೈಲ್ನ ಅಂತ್ಯದಲ್ಲಿ ಇರಿಸಲಾಗುತ್ತದೆ , ಲೈಸೆಕ್ನಂತೆ . ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಪ್ರಕ್ರಿಯೆಯು ಒಮ್ಮೆಗೆ ಫೈಲ್ಗೆ ಡೇಟಾವನ್ನು ಸೇರಿಸಿದರೆ O_APPEND NFS ಫೈಲ್ ಸಿಸ್ಟಮ್ಗಳಲ್ಲಿ ಭ್ರಷ್ಟ ಫೈಲ್ಗಳಿಗೆ ಕಾರಣವಾಗಬಹುದು. ಏಕೆಂದರೆ ಇದು ಎನ್ಎಫ್ಎಸ್ ಫೈಲ್ಗೆ ಅಪ್ಪಣೆ ಮಾಡುವುದನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ಕ್ಲೈಂಟ್ ಕರ್ನಲ್ ಅದನ್ನು ಅನುಕರಿಸಬೇಕು, ಇದು ಓಟದ ಸ್ಥಿತಿ ಇಲ್ಲದೆ ಮಾಡಲಾಗುವುದಿಲ್ಲ.

O_NONBLOCK ಅಥವಾ O_NDELAY

ಸಾಧ್ಯವಾದಾಗ, ಫೈಲ್ ಅನ್ನು ತಡೆರಹಿತ ಮೋಡ್ನಲ್ಲಿ ತೆರೆಯಲಾಗುತ್ತದೆ. ಹಿಂತಿರುಗಿಸಲಾಗಿರುವ ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ನಲ್ಲಿ ತೆರೆದ ಅಥವಾ ಯಾವುದೇ ನಂತರದ ಕಾರ್ಯಾಚರಣೆಗಳು ಕರೆ ಮಾಡುವ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಕಾಯಲು ಕಾರಣವಾಗುವುದಿಲ್ಲ. FIFO ಗಳ ನಿರ್ವಹಣೆಗೆ (ಹೆಸರಿಸಿದ ಕೊಳವೆಗಳು), ಫಿಯೋ (4) ಅನ್ನು ಸಹ ನೋಡಿ. ಈ ಕ್ರಮವು FIFO ಗಳು ಹೊರತುಪಡಿಸಿ ಫೈಲ್ಗಳಲ್ಲಿ ಯಾವುದೇ ಪರಿಣಾಮವನ್ನು ಹೊಂದಿಲ್ಲ.

O_SYNC

ಸಿಂಕ್ರೊನಸ್ I / O ಗಾಗಿ ಫೈಲ್ ಅನ್ನು ತೆರೆಯಲಾಗಿದೆ. ಪರಿಣಾಮಕಾರಿಯಾದ ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ನಲ್ಲಿರುವ ಯಾವುದೇ ಬರಹಗಳು, ಕರೆನ್ಸಿ ಪ್ರಕ್ರಿಯೆಯನ್ನು ನಿರ್ಬಂಧಿಸುತ್ತದೆ, ಡೇಟಾವನ್ನು ದೈಹಿಕವಾಗಿ ಆಧಾರವಾಗಿರುವ ಹಾರ್ಡ್ವೇರ್ಗೆ ಬರೆಯಲಾಗುತ್ತದೆ. ಕೆಳಗೆ ನಿರ್ಬಂಧಗಳನ್ನು ನೋಡಿ, ಆದರೂ.

O_NOFOLLOW

ಪಥನಾಮವು ಸಾಂಕೇತಿಕ ಲಿಂಕ್ ಆಗಿದ್ದರೆ, ತೆರೆದ ವಿಫಲತೆಗಳು. ಇದು FreeBSD ವಿಸ್ತರಣೆಯನ್ನು ಹೊಂದಿದೆ, ಇದನ್ನು ಲಿನಕ್ಸ್ಗೆ ಆವೃತ್ತಿ 2.1.126 ನಲ್ಲಿ ಸೇರಿಸಲಾಗಿದೆ. ಪಥನಾಮದ ಹಿಂದಿನ ಭಾಗಗಳಲ್ಲಿನ ಸಾಂಕೇತಿಕ ಕೊಂಡಿಗಳು ಇನ್ನೂ ಅನುಸರಿಸಲ್ಪಡುತ್ತವೆ. Glibc 2.0.100 ಮತ್ತು ನಂತರದ ಶೀರ್ಷಿಕೆಗಳು ಈ ಧ್ವಜದ ವ್ಯಾಖ್ಯಾನವನ್ನು ಒಳಗೊಂಡಿವೆ; ಬಳಸಲಾಗುತ್ತದೆ ವೇಳೆ 2.1.126 ಮೊದಲು ಕರ್ನಲ್ಗಳು ಅದನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ .

O_DIRECTORY

ಪಾತ್ಹೆಸರು ಡೈರೆಕ್ಟರಿಯಲ್ಲದಿದ್ದರೆ, ಓಪನ್ ವಿಫಲಗೊಳ್ಳುವಂತೆ ಮಾಡಿ. ಈ ಫ್ಲ್ಯಾಗ್ ಲಿನಕ್ಸ್-ನಿರ್ದಿಷ್ಟವಾಗಿದೆ, ಮತ್ತು ಆಫೆಂಡಿರ್ (3) ಅನ್ನು FIFO ಅಥವಾ ಟೇಪ್ ಸಾಧನದಲ್ಲಿ ಕರೆಯಿದರೆ ಸೇವೆಯ ನಿರಾಕರಣೆಯ ಸೇವನೆಯನ್ನು ತಪ್ಪಿಸಲು, ಕರ್ನಲ್ ಆವೃತ್ತಿ 2.1.126 ರಲ್ಲಿ ಸೇರಿಸಲ್ಪಟ್ಟಿದೆ, ಆದರೆ ಆಪೆಂಡಿರ್ ಅನುಷ್ಠಾನದ ಹೊರಗೆ ಬಳಸಬಾರದು .

O_DIRECT

ಈ ಫೈಲ್ಗೆ ಮತ್ತು I / O ನ ಕ್ಯಾಷ್ ಪರಿಣಾಮಗಳನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ. ಸಾಮಾನ್ಯವಾಗಿ ಇದು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ತಗ್ಗಿಸುತ್ತದೆ, ಆದರೆ ಅಪ್ಲಿಕೇಶನ್ಗಳು ತಮ್ಮ ಸ್ವಂತ ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳುವಿಕೆಯಂತಹ ವಿಶೇಷ ಸಂದರ್ಭಗಳಲ್ಲಿ ಇದು ಉಪಯುಕ್ತವಾಗಿದೆ. ಫೈಲ್ I / O ಬಳಕೆದಾರ ಬಾಹ್ಯಾಕಾಶ ಬಫರ್ಗಳಿಂದ ನೇರವಾಗಿ / ಮಾಡಲಾಗುತ್ತದೆ. I / O ಸಿಂಕ್ರೊನಸ್ ಆಗಿದೆ, ಅಂದರೆ, ಓದಲು (2) ಅಥವಾ ಬರಹ (2) ಸಿಸ್ಟಮ್ ಕರೆ ಮುಗಿದ ನಂತರ, ಡೇಟಾವನ್ನು ವರ್ಗಾವಣೆ ಮಾಡಲು ಖಾತರಿ ನೀಡಲಾಗುತ್ತದೆ. ವರ್ಗಾವಣೆ ಗಾತ್ರಗಳು, ಮತ್ತು ಬಳಕೆದಾರ ಬಫರ್ ಮತ್ತು ಫೈಲ್ ಆಫ್ಸೆಟ್ ಜೋಡಣೆ ಎಲ್ಲಾ ಕಡತ ವ್ಯವಸ್ಥೆಯ ತಾರ್ಕಿಕ ಬ್ಲಾಕ್ ಗಾತ್ರದ ಮಲ್ಟಿಪಲ್ಗಳಾಗಿರಬೇಕು.
ಈ ಧ್ವಜವು ಹಲವಾರು ಯುನಿಕ್ಸ್ ಮಾದರಿಯ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಬೆಂಬಲಿತವಾಗಿದೆ; ಕರ್ನಲ್ ಆವೃತ್ತಿ 2.4.10 ರಲ್ಲಿ ಲಿನಕ್ಸ್ ಅಡಿಯಲ್ಲಿ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
ಬ್ಲಾಕ್ ಸಾಧನಗಳಿಗೆ ಒಂದು ಅರ್ಥಾತ್ ರೀತಿಯ ಅಂತರ್ಮುಖಿ ಕಚ್ಚಾ (8) ನಲ್ಲಿ ವಿವರಿಸಲಾಗಿದೆ.

O_ASYNC

ಸಿಗ್ನಲ್ ಅನ್ನು ರಚಿಸಿ (ಸಿಐಜಿಒಒ ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, ಆದರೆ ಈ ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ನಲ್ಲಿ ಇನ್ಪುಟ್ ಅಥವಾ ಔಟ್ಪುಟ್ ಸಾಧ್ಯವಾದಾಗ ಇದನ್ನು 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 ಗೆ ಸಮನಾದ ಧ್ವಜಗಳೊಂದಿಗೆ ತೆರೆಯಲು ಸಮಾನವಾಗಿದೆ.

ಹಿಂತಿರುಗಿ ಮೌಲ್ಯ

ತೆರೆದ ಮತ್ತು ಸೃಷ್ಟಿ ಹೊಸ ಫೈಲ್ ವಿವರಣಾಕಾರವನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ, ಅಥವಾ -1 ದೋಷವೊಂದನ್ನು ಎದುರಿಸಿದರೆ (ಈ ಸಂದರ್ಭದಲ್ಲಿ, ತಪ್ಪಾಗಿ ಸೂಕ್ತವಾಗಿ ಹೊಂದಿಸಲಾಗಿದೆ). ಓಪನ್ ಸಾಧನದ ವಿಶೇಷ ಫೈಲ್ಗಳನ್ನು ತೆರೆಯಬಹುದು ಎಂಬುದನ್ನು ಗಮನಿಸಿ, ಆದರೆ ರಚನೆಯು ಅವುಗಳನ್ನು ರಚಿಸಲಾಗುವುದಿಲ್ಲ - ಬದಲಿಗೆ mknod (2) ಅನ್ನು ಬಳಸಿ.

ಯುಐಡಿ ಮ್ಯಾಪಿಂಗ್ ಸಕ್ರಿಯಗೊಳಿಸಿದ ಎನ್ಎಫ್ಎಸ್ ಕಡತ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ, ಓಪನ್ ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ ಅನ್ನು ಹಿಂದಿರುಗಿಸಬಹುದು ಆದರೆ ಓದಬಹುದು (2) ವಿನಂತಿಗಳನ್ನು ಇಎಸಿಸಿಇಎಸ್ನಿಂದ ನಿರಾಕರಿಸಲಾಗಿದೆ. ಏಕೆಂದರೆ ಕ್ಲೈಂಟ್ ಅನುಮತಿಗಳನ್ನು ಪರಿಶೀಲಿಸುವ ಮೂಲಕ ತೆರೆದುಕೊಳ್ಳುತ್ತದೆ , ಆದರೆ ಯುಐಡಿ ಮ್ಯಾಪಿಂಗ್ ಸರ್ವರ್ನಿಂದ ಓದಲು ಮತ್ತು ಬರೆಯುವ ವಿನಂತಿಗಳ ಮೇಲೆ ನಡೆಸಲ್ಪಡುತ್ತದೆ.

ಫೈಲ್ ಹೊಸದಾಗಿ ರಚಿಸಲ್ಪಟ್ಟರೆ, ಅದರ ಸಮಯ, ಸಮಯ, mtime ಕ್ಷೇತ್ರಗಳನ್ನು ಪ್ರಸ್ತುತ ಸಮಯಕ್ಕೆ ಹೊಂದಿಸಲಾಗಿದೆ, ಮತ್ತು ಪೋಷಕ ಡೈರೆಕ್ಟರಿಯ ctime ಮತ್ತು mtime ಕ್ಷೇತ್ರಗಳು. ಇಲ್ಲದಿದ್ದರೆ, O_TRUNC ಫ್ಲ್ಯಾಗ್ನ ಕಾರಣ ಫೈಲ್ ಮಾರ್ಪಡಿಸಲ್ಪಟ್ಟರೆ, ಅದರ ಸಮಯ ಮತ್ತು mtime ಕ್ಷೇತ್ರಗಳನ್ನು ಪ್ರಸ್ತುತ ಸಮಯಕ್ಕೆ ಹೊಂದಿಸಲಾಗಿದೆ.

ದೋಷಗಳು

ಹೆಚ್ಚುವರಿ

ಪಾತ್ ಹೆಸರನ್ನು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ ಮತ್ತು O_CREAT ಮತ್ತು O_EXCL ಬಳಸಲಾಗುತ್ತಿತ್ತು.

ಇಐಎಸ್ಡಿಐಆರ್

ಪಥನಾಮವು ಡೈರೆಕ್ಟರಿಯನ್ನು ಸೂಚಿಸುತ್ತದೆ ಮತ್ತು ಒಳಗೊಂಡಿರುವ ಬರಹವನ್ನು ವಿನಂತಿಸುವ ಪ್ರವೇಶ (ಅಂದರೆ, O_WRONLY ಅಥವಾ O_RDWR ಅನ್ನು ಹೊಂದಿಸಲಾಗಿದೆ).

EACCES

ಫೈಲ್ಗೆ ವಿನಂತಿಸಿದ ಪ್ರವೇಶವನ್ನು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ ಅಥವಾ ಪಥ ಹೆಸರಿನ ಡೈರೆಕ್ಟರಿಗಳಲ್ಲಿ ಒಂದನ್ನು ಹುಡುಕು (ಕಾರ್ಯಗತಗೊಳಿಸಿ) ಅನುಮತಿಸುವುದಿಲ್ಲ, ಅಥವಾ ಫೈಲ್ ಇನ್ನೂ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ ಮತ್ತು ಪೋಷಕ ಡೈರೆಕ್ಟರಿಗೆ ಪ್ರವೇಶವನ್ನು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ.

ENAMETOOLONG

ಪಥನಾಮವು ತುಂಬಾ ಉದ್ದವಾಗಿದೆ.

ಎನೋಂಟ್

O_CREAT ಹೊಂದಿಸಲಾಗಿಲ್ಲ ಮತ್ತು ಹೆಸರಿಸಲಾದ ಫೈಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ. ಅಥವಾ, ಪಾತ್ ಹೆಸರಿನ ಡೈರೆಕ್ಟರಿ ಘಟಕ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ ಅಥವಾ ಡ್ಯಾಂಗ್ಲಿಂಗ್ ಸಾಂಕೇತಿಕ ಲಿಂಕ್ ಆಗಿದೆ.

ಎನೋಟ್ಡಿರ್

ಪಾತ್ ಹೆಸರಿನಲ್ಲಿ ಡೈರೆಕ್ಟರಿಯಾಗಿ ಬಳಸುವ ಅಂಶವು ವಾಸ್ತವವಾಗಿ, ಒಂದು ಡೈರೆಕ್ಟರಿ ಅಲ್ಲ, ಅಥವಾ O_DIRECTORY ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿದೆ ಮತ್ತು ಪಥನಾಮವು ಕೋಶವಾಗಿಲ್ಲ.

ENXIO

O_NONBLOCK | O_WRONLY ಹೊಂದಿಸಲಾಗಿದೆ, ಹೆಸರಿಸಲಾದ ಫೈಲ್ ಒಂದು FIFO ಮತ್ತು ಯಾವುದೇ ಪ್ರಕ್ರಿಯೆಯು ಓದುವುದಕ್ಕೆ ಫೈಲ್ ಅನ್ನು ತೆರೆಯುತ್ತದೆ. ಅಥವಾ, ಫೈಲ್ ಸಾಧನದ ವಿಶೇಷ ಫೈಲ್ ಮತ್ತು ಅನುಗುಣವಾದ ಸಾಧನ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ.

ENODEV

ಪಥನಾಮವು ಸಾಧನ ವಿಶೇಷ ಕಡತವನ್ನು ಸೂಚಿಸುತ್ತದೆ ಮತ್ತು ಅನುಗುಣವಾದ ಸಾಧನ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ. (ಇದು ಲಿನಕ್ಸ್ ಕರ್ನಲ್ ದೋಷ - ಈ ಪರಿಸ್ಥಿತಿಯಲ್ಲಿ ENXIO ಮರಳಬೇಕಾಗಿದೆ.)

EROFS

ಪಥನಾಮವು ಓದಲು-ಮಾತ್ರ ಕಡತವ್ಯವಸ್ಥೆಯ ಮೇಲೆ ಫೈಲ್ ಅನ್ನು ಉಲ್ಲೇಖಿಸುತ್ತದೆ ಮತ್ತು ಬರೆಯುವ ಪ್ರವೇಶವನ್ನು ವಿನಂತಿಸಲಾಗಿದೆ.

ಇಟಿಎಕ್ಸ್ಬಿಎಸ್ವೈ

ಪಾತ್ನಾಮೆ ಎಕ್ಸಿಕ್ಯೂಟ್ ಮಾಡಬಹುದಾದ ಇಮೇಜ್ ಅನ್ನು ಸೂಚಿಸುತ್ತದೆ, ಇದು ಪ್ರಸ್ತುತ ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಪ್ರವೇಶವನ್ನು ವಿನಂತಿಸಲಾಗಿದೆ.

EFAULT

ನಿಮ್ಮ ಪ್ರವೇಶಿಸಬಹುದಾದ ವಿಳಾಸ ಸ್ಥಳಾವಕಾಶದ ಹೊರಗೆ ಹಾದಿ ಹೆಸರುಗಳು .

ELOOP

ಪಥನಾಮವನ್ನು ಪರಿಹರಿಸುವಲ್ಲಿ ಹಲವಾರು ಸಾಂಕೇತಿಕ ಕೊಂಡಿಗಳು ಎದುರಾಗಿದೆ, ಅಥವಾ O_NOFOLLOW ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿದೆ ಆದರೆ ಪಥನಾಮವು ಸಾಂಕೇತಿಕ ಲಿಂಕ್ ಆಗಿದೆ.

ENOSPC

ಪಾತ್ ಹೆಸರನ್ನು ರಚಿಸಬೇಕಾಗಿದೆ ಆದರೆ ಪಥನಾಮವನ್ನು ಹೊಂದಿರುವ ಸಾಧನವು ಹೊಸ ಫೈಲ್ಗೆ ಯಾವುದೇ ಸ್ಥಳಾವಕಾಶವಿಲ್ಲ.

ಎನೋಮೆಮ್

ಸಾಕಷ್ಟು ಕರ್ನಲ್ ಮೆಮೊರಿ ಲಭ್ಯವಿಲ್ಲ.

EMFILE

ಪ್ರಕ್ರಿಯೆಯು ಈಗಾಗಲೇ ಗರಿಷ್ಠ ಸಂಖ್ಯೆಯ ಫೈಲ್ಗಳನ್ನು ತೆರೆಯುತ್ತದೆ.

ENFILE

ಸಿಸ್ಟಮ್ನಲ್ಲಿ ತೆರೆದಿರುವ ಒಟ್ಟು ಫೈಲ್ಗಳ ಮಿತಿಯನ್ನು ತಲುಪಿದೆ.

ಅನುಗುಣವಾಗಿ

SVr4, SVID, POSIX, X / OPEN, BSD 4.3 O_NOFOLLOW ಮತ್ತು O_DIRECTORY ಧ್ವಜಗಳು ಲಿನಕ್ಸ್- ನಿರ್ದಿಷ್ಟವಾಗಿದೆ. ತಮ್ಮ ವ್ಯಾಖ್ಯಾನಗಳನ್ನು ಪಡೆಯಲು _GNU_SOURCE ಮ್ಯಾಕ್ರೋವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಬೇಕಾಗಬಹುದು.

ನಿರ್ಬಂಧಗಳು

ಎನ್.ಎಫ್.ಎಸ್ನ ಆಧಾರದ ಮೇಲೆ ಪ್ರೋಟೋಕಾಲ್ನಲ್ಲಿ ಹಲವು ಇನ್ಫೆಲಿಸಿಸ್ಗಳಿವೆ, ಇದು O.SYNC ಮತ್ತು O_NDELAY ನ ಇತರರ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ .

O.SYNC , O_DSYNC ಮತ್ತು O_RSYNC ಧ್ವಜಗಳಿಗೆ ಅನುಗುಣವಾಗಿ POSIX ಸಿಂಕ್ರೊನೈಸ್ಡ್ I / O ನ ಮೂರು ವಿಭಿನ್ನ ರೂಪಾಂತರಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. ಪ್ರಸ್ತುತ (2.1.130) ಇವುಗಳು ಲಿನಕ್ಸ್ ಅಡಿಯಲ್ಲಿ ಎಲ್ಲಾ ಪರ್ಯಾಯ ಪದಗಳಾಗಿವೆ.