Open (system call)
ಹೆಚ್ಚಿನ ಕಡತ ವ್ಯವಸ್ಥೆಗಳಿಗೆ, ಒಂದು ಪ್ರೋಗ್ರಾಂ ಓಪನ್ ಸಿಸ್ಟಮ್ ಕರೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಕಡತ ವ್ಯವಸ್ಥೆಯಲ್ಲಿನ ಕಡತಕ್ಕೆ ಪ್ರವೇಶವನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ. ಇದು ಕಡತಕ್ಕೆ (ಕಡತ ವಿವರಣೆಗಾರ) ಸಂಬಂಧಿಸಿದ ಸಂಪನ್ಮೂಲಗಳನ್ನು ನಿಯೋಜಿಸುತ್ತದೆ ಮತ್ತು ಆ ಕಡತವನ್ನು ಉಲ್ಲೇಖಿಸಲು ಪ್ರಕ್ರಿಯೆಯು ಬಳಸುವ ಹ್ಯಾಂಡಲ್ ಅನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ. ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ ಓಪನ್ ಅನ್ನು ಮೊದಲ ಪ್ರವೇಶದಿಂದ ನಡೆಸಲಾಗುತ್ತದೆ. ಒಂದೇ ಕಡತವನ್ನು ಹಲವಾರು ಪ್ರಕ್ರಿಯೆಗಳಿಂದ ಮತ್ತು ಒಂದೇ ಪ್ರಕ್ರಿಯೆಯಿಂದ ಏಕಕಾಲದಲ್ಲಿ ತೆರೆಯಬಹುದು, ಇದು ಕಡತದ ರಚನೆ ಮತ್ತು ಕಡತ ವ್ಯವಸ್ಥೆಯನ್ನು ಅವಲಂಬಿಸಿ ಒಂದೇ ಕಡತಕ್ಕೆ ಹಲವಾರು ಕಡತ ವಿವರಣೆಗಳಿಗೆ ಕಾರಣವಾಗುತ್ತದೆ. ಫೈಲ್ ಪಾಯಿಂಟರ್ ಅನ್ನು ಚಲಿಸುವ ಅಥವಾ ಅದನ್ನು ಮುಚ್ಚುವಂತಹ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ಗಳಲ್ಲಿನ ಕಾರ್ಯಾಚರಣೆಗಳು ಸ್ವತಂತ್ರವಾಗಿರುತ್ತವೆ-ಅವು ಅದೇ ಫೈಲ್ಗಾಗಿ ಇತರ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ಗಳ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ. ಬರವಣಿಗೆಯಂತಹ ಕಡತದಲ್ಲಿನ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಇತರ ವಿವರಣಾಕಾರಗಳಲ್ಲಿನ ಕಾರ್ಯಾಚರಣೆಗಳ ಮೂಲಕ ನೋಡಬಹುದುಃ ನಂತರದ ಓದುವಿಕೆಯು ಹೊಸದಾಗಿ ಬರೆಯಲಾದ ದತ್ತಾಂಶವನ್ನು ಓದಬಹುದು. ತೆರೆದ ಸಮಯದಲ್ಲಿ, ಕಡತ ವ್ಯವಸ್ಥೆಯು ಬಫರ್ಗಳಿಗಾಗಿ ಮೆಮೊರಿಯನ್ನು ನಿಯೋಜಿಸಬಹುದು, ಅಥವಾ ಅದು ಮೊದಲ ಕಾರ್ಯಾಚರಣೆಯವರೆಗೆ ಕಾಯಬಹುದು. ಸಂಪೂರ್ಣ ಕಡತದ ಮಾರ್ಗವನ್ನು ಪರಿಹರಿಸಲಾಗಿದೆ. ಇದು ರಿಮೋಟ್ ಹೋಸ್ಟ್ಗೆ ಸಂಪರ್ಕ ಕಲ್ಪಿಸುವುದು ಮತ್ತು ತೆಗೆದುಹಾಕಬಹುದಾದ ಮಾಧ್ಯಮದ ಅಗತ್ಯವಿದೆ ಎಂದು ಆಪರೇಟರ್ಗೆ ತಿಳಿಸುವುದನ್ನು ಒಳಗೊಂಡಿರಬಹುದು. ಇದು ಸಂವಹನ ಸಾಧನದ ಆರಂಭೀಕರಣವನ್ನು ಒಳಗೊಂಡಿರಬಹುದು. ಈ ಹಂತದಲ್ಲಿ ಹೋಸ್ಟ್ ಅಥವಾ ಮಾಧ್ಯಮ ಲಭ್ಯವಿಲ್ಲದಿದ್ದರೆ ದೋಷವನ್ನು ಹಿಂತಿರುಗಿಸಬಹುದು. ಕಡತ ವ್ಯವಸ್ಥೆಯೊಳಗಿನ ಕನಿಷ್ಠ ಕೋಶಕ್ಕೆ ಮೊದಲ ಪ್ರವೇಶವನ್ನು ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ. ಪಥದ ಉನ್ನತ ಮಟ್ಟದ ಘಟಕಗಳನ್ನು (ಕೋಶಗಳು) ಪತ್ತೆಹಚ್ಚಲು ಅಥವಾ ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಾಗದಿದ್ದರೆ ದೋಷವನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ. ಕಡತವು ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ ಎಂದು ನಿರೀಕ್ಷಿಸಿದ್ದರೆ ಮತ್ತು ಅದು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದಿದ್ದರೆ ಅಥವಾ ಕಡತವು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದಿದ್ದರೆ ಮತ್ತು ಅದು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದಿದ್ದರೆ ದೋಷವನ್ನು ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ. ಕಡತವು ಅಸ್ತಿತ್ವದಲ್ಲಿರುತ್ತದೆ ಮತ್ತು ಅದು ಅಸ್ತಿತ್ವದಲ್ಲಿರುತ್ತದೆ ಎಂದು ನಿರೀಕ್ಷಿಸಿದ್ದರೆ, ಕಡತದ ಮೆಟಾ ದತ್ತಾಂಶ ಅಥವಾ ಪ್ರವೇಶ ನಿಯಂತ್ರಣ ಪಟ್ಟಿಯೊಳಗಿನ ಅನುಮತಿ ಧ್ವಜಗಳಿಂದ ನಿರ್ಬಂಧಿಸಲಾದ ಕಡತದ ಪ್ರವೇಶವನ್ನು ವಿನಂತಿಸಿದ ರೀತಿಯ ಕಾರ್ಯಾಚರಣೆಗಳ ವಿರುದ್ಧ ಮೌಲ್ಯೀಕರಿಸಲಾಗುತ್ತದೆ. ಇದಕ್ಕೆ ಸಾಮಾನ್ಯವಾಗಿ ಹೆಚ್ಚುವರಿ ಕಡತ ವ್ಯವಸ್ಥೆಯ ಪ್ರವೇಶದ ಅಗತ್ಯವಿರುತ್ತದೆ, ಆದಾಗ್ಯೂ ಕೆಲವು ಕಡತ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಮೆಟಾ-ಫ್ಲ್ಯಾಗ್ಗಳು ಕೋಶದ ರಚನೆಯ ಭಾಗವಾಗಿರಬಹುದು. ಕಡತವನ್ನು ರಚಿಸಲಾಗುತ್ತಿದ್ದರೆ, ಕಡತ ವ್ಯವಸ್ಥೆಯು ಕಡತ ವ್ಯವಸ್ಥೆಯ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಅವಲಂಬಿಸಿ ಪೂರ್ವನಿಯೋಜಿತ ಆರಂಭಿಕ ಸಂಗ್ರಹದ ಮೊತ್ತವನ್ನು ಅಥವಾ ನಿರ್ದಿಷ್ಟ ಮೊತ್ತವನ್ನು ನಿಯೋಜಿಸಬಹುದು. ಇದು ವಿಫಲವಾದರೆ ದೋಷವನ್ನು ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ. ಹೊಸ ನಮೂದಿನೊಂದಿಗೆ ಕೋಶವನ್ನು ನವೀಕರಿಸುವುದನ್ನು ಮಾಡಬಹುದು ಅಥವಾ ಮುಚ್ಚುವಿಕೆಯನ್ನು ನಿರ್ವಹಿಸುವವರೆಗೆ ವಿಳಂಬವಾಗಬಹುದು. ತೆರೆದ ಸಮಯದಲ್ಲಿ ಸಂಭವಿಸಬಹುದಾದ ಹಲವಾರು ಇತರ ದೋಷಗಳಲ್ಲಿ ಡೈರೆಕ್ಟರಿ ನವೀಕರಣ ವೈಫಲ್ಯಗಳು, ಅನುಮತಿಸದ ಬಹು ಸಂಪರ್ಕಗಳು, ಮಾಧ್ಯಮ ವೈಫಲ್ಯಗಳು, ಸಂವಹನ ಲಿಂಕ್ ವೈಫಲ್ಯಗಳು ಮತ್ತು ಸಾಧನ ವೈಫಲ್ಯಗಳು ಸೇರಿವೆ. ರಿಟರ್ನ್ ಮೌಲ್ಯವನ್ನು ಯಾವಾಗಲೂ ಪರಿಶೀಲಿಸಬೇಕು ಮತ್ತು ದೋಷ ನಿರ್ದಿಷ್ಟ ಕ್ರಮವನ್ನು ತೆಗೆದುಕೊಳ್ಳಬೇಕು. ಅನೇಕ ಸಂದರ್ಭಗಳಲ್ಲಿ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆ-ನಿರ್ದಿಷ್ಟ ರನ್-ಟೈಮ್ ಲೈಬ್ರರಿ ತೆರೆಯುವಿಕೆಯು ಫೈಲ್ಗೆ ಸಂಬಂಧಿಸಿದ ರನ್-ಟೈಮ್ ಲೈಬ್ರರಿ ರಚನೆಯನ್ನು ಪ್ರಾರಂಭಿಸುವುದು ಸೇರಿದಂತೆ ಹೆಚ್ಚುವರಿ ಕ್ರಿಯೆಗಳನ್ನು ಮಾಡಬಹುದು. ಒಂದು ಕಡತವು ಇನ್ನು ಮುಂದೆ ಅಗತ್ಯವಿಲ್ಲದ ತಕ್ಷಣ, ಪ್ರೋಗ್ರಾಂ ಅದನ್ನು ಮುಚ್ಚಬೇಕು. ಇದು ರನ್-ಟೈಮ್ ಲೈಬ್ರರಿ ಮತ್ತು ಫೈಲ್ಸಿಸ್ಟಮ್ ಬಫರ್ಗಳನ್ನು ಭೌತಿಕ ಮಾಧ್ಯಮಕ್ಕೆ ನವೀಕರಿಸಲು ಕಾರಣವಾಗುತ್ತದೆ ಮತ್ತು ವಿಶೇಷ ಬಳಕೆಯ ಅಗತ್ಯವಿದ್ದರೆ ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸಲು ಇತರ ಪ್ರಕ್ರಿಯೆಗಳಿಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ. ಪ್ರೋಗ್ರಾಂ ರನ್-ಟೈಮ್ ನಿರ್ಗಮನವನ್ನು ಕರೆದರೆ ಕೆಲವು ರನ್-ಟೈಮ್ ಲೈಬ್ರರಿಗಳು ಫೈಲ್ ಅನ್ನು ಮುಚ್ಚಬಹುದು. ಪ್ರೋಗ್ರಾಂ ಕೊನೆಗೊಂಡರೆ ಕೆಲವು ಕಡತ ವ್ಯವಸ್ಥೆಗಳು ಅಗತ್ಯ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಮಾಡಬಹುದು. ಕರ್ನಲ್ ಅಥವಾ ವಿದ್ಯುತ್ ವೈಫಲ್ಯದ ಸಂದರ್ಭದಲ್ಲಿ ಇವುಗಳಲ್ಲಿ ಯಾವುದೂ ಸಂಭವಿಸುವ ಸಾಧ್ಯತೆಯಿಲ್ಲ. ಇದು ಹಾನಿಗೊಳಗಾದ ಕಡತವ್ಯವಸ್ಥೆಯ ರಚನೆಗಳಿಗೆ ಕಾರಣವಾಗಬಹುದು, ಈ ಸಮಯದಲ್ಲಿ ಇಡೀ ಕಡತವ್ಯವಸ್ಥೆಯು ಪ್ರವೇಶಿಸಲಾಗದಂತಹ ಸವಲತ್ತು ಪಡೆದ ಮತ್ತು ದೀರ್ಘವಾದ ಕಡತವ್ಯವಸ್ಥೆಯ ಉಪಯುಕ್ತತೆಗಳ ಚಾಲನೆಯ ಅಗತ್ಯವಿರುತ್ತದೆ. ತೆರೆದ ಕರೆ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳು ಕಡತದ ಪಥನಾಮ, ಕಡತದಲ್ಲಿ ವಿನಂತಿಸಿದ ರೀತಿಯ ಪ್ರವೇಶ (ಓದುವುದು, ಬರೆಯುವುದು, ಸೇರಿಸುವುದು ಇತ್ಯಾದಿ). ), ಮೋಡ್ ಎಂಬ ಮೂರನೇ ವಾದವನ್ನು ಬಳಸಿಕೊಂಡು ಆರಂಭಿಕ ಕಡತ ಅನುಮತಿಯನ್ನು ಕೋರಲಾಗಿದೆ. ಹೊಸ ಕಡತವನ್ನು ರಚಿಸುವಾಗ ಮಾತ್ರ ಈ ವಾದವು ಪ್ರಸ್ತುತವಾಗಿರುತ್ತದೆ. ಕಡತವನ್ನು ಬಳಸಿದ ನಂತರ, ಪ್ರಕ್ರಿಯೆಯು ಕ್ಲೋಸ್ ಕಾಲ್ ಬಳಸಿ ಕಡತವನ್ನು ಮುಚ್ಚಬೇಕು, ಇದು ಕಡತದ ವಿವರಣೆಯನ್ನು ಮುಚ್ಚುವಂತೆ ಮಾಡುತ್ತದೆ. ಕೆಲವು ಕಡತ ವ್ಯವಸ್ಥೆಗಳು ಕಡತವನ್ನು ಬಿಡುಗಡೆ ಮಾಡಲು ಅನುಮತಿಸುವ ಮನೋಭಾವವನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆ. ಕೆಲವು ಕಂಪ್ಯೂಟರ್ ಭಾಷೆಗಳು ನಿರ್ದಿಷ್ಟ ಕಡತ ವ್ಯವಸ್ಥೆಗಳಿಗೆ ಹೆಚ್ಚುವರಿ ಕಾರ್ಯಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ರನ್-ಟೈಮ್ ಗ್ರಂಥಾಲಯಗಳನ್ನು ಒಳಗೊಂಡಿವೆ. ತೆರೆದ (ಅಥವಾ ಕೆಲವು ಸಹಾಯಕ ದಿನಚರಿ) ಕೀಲಿಯ ಗಾತ್ರ, ದಾಖಲೆಯ ಗಾತ್ರ, ಸಂಪರ್ಕದ ವೇಗದ ನಿರ್ದಿಷ್ಟತೆಗಳನ್ನು ಒಳಗೊಂಡಿರಬಹುದು. ಕೆಲವು ಮುಕ್ತ ದಿನಚರಿಗಳು ದೋಷ ಸಂಭವಿಸಿದಾಗ ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕಾದ ಪ್ರೋಗ್ರಾಂ ಕೋಡ್ನ ನಿರ್ದಿಷ್ಟತೆಯನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆ. ಪರ್ಲ್ ಭಾಷೆಯು ಫೈಲ್ ಹ್ಯಾಂಡಲ್ ಅನ್ನು ತೆರೆಯುತ್ತದೆ, ಉದಾಹರಣೆಗೆಃ ಓಪನ್ (ನನ್ನ $fh ",>", output.txt "); ಪರ್ಲ್ ಟೈಃಃ ಫೈಲ್ ಮಾಡ್ಯೂಲ್ನ ಟೈ ಕಾರ್ಯವನ್ನು ಸಹ ಫೈಲ್ನೊಂದಿಗೆ ರಚನೆಯನ್ನು ಸಂಯೋಜಿಸಲು ಬಳಸುತ್ತದೆ. ಟೈಃ: ಏನಿ ಡಿಬಿಎಂ _ ಫೈಲ್ ಕಾರ್ಯವು ಹ್ಯಾಶ್ ಅನ್ನು ಫೈಲ್ನೊಂದಿಗೆ ಸಂಯೋಜಿಸುತ್ತದೆ. ಸಿ ಲೈಬ್ರರಿ ಪೋಸಿಕ್ಸ್ ವ್ಯಾಖ್ಯಾನ ಮುಕ್ತ ಕರೆಯು ಸಿ ಭಾಷೆಯ ಪೋಸಿಕ್ಸ್ ವಿವರಣೆಯಿಂದ ಪ್ರಮಾಣೀಕರಿಸಲ್ಪಟ್ಟಿದೆಃ ಇಂಟ ಓಪನ್ (ಕಾನ್ಸ್ಟ್ ಚಾರ್ * ಪಥ, ಇಂಟಲ್ ಲ್ಯಾಗ್,./*, ಮೋಡ್ _ ಟಿ ಮೋಡ್ */); ಇಂಟ ಓಪನ್ (ಇನ್ಟ್ ಎಫ್ಡಿ, ಕಾನ್ಸ್ಟ್ ಚಾರ್ * ಪಥ, ಇಂಟಲ್ ಲ್ಯಾಗ್,); ಇಂಟ ಕ್ರಿಯೇಟ್ (ಕಾನ್ಸ್ಟ್ ಚಾರ್ * ಪಥ, ಮೋಡ್ _ ಟಿ ಮೋಡ್); ಎಫ್. ಐ. ಎಲ್ * ಫೋಪೆನ್ (ಕಾನ್ಸ್ಟ್ ಚಾರ್ * ನಿರ್ಬಂಧಿತ ಕಡತದ ಹೆಸರು, ಕಾನ್ಸ್ಟ್ ಚಾರ್ * ನಿರ್ಬಂಧಿತ ಮೋಡ್); ಹಿಂತಿರುಗಿಸಲಾದ ಮೌಲ್ಯವು ಫೈಲ್ ವಿವರಣೆಯಾಗಿದ್ದು, ಇದು ಪ್ರಕ್ರಿಯೆಯ ನಿರ್ದಿಷ್ಟ ರಚನೆಯನ್ನು ಉಲ್ಲೇಖಿಸುತ್ತದೆ, ಇದು ಇತರ ವಿಷಯಗಳ ಜೊತೆಗೆ, ಮುಂದಿನ ಕಾರ್ಯಾಚರಣೆಯಿಂದ ಕಡತದಲ್ಲಿ ಯಾವ ಸ್ಥಳದ ಮೇಲೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಸೂಚಿಸುವ ಸ್ಥಾನ ಸೂಚಕವಾಗಿದೆ. ದೋಷವನ್ನು ವಿವರಿಸುವ ದೋಷದೊಂದಿಗೆ ವೈಫಲ್ಯವನ್ನು ಸೂಚಿಸುವ ಓಪನ್-1 ಅನ್ನು ಹಿಂತಿರುಗಿಸಬಹುದು. ಕಡತ ವ್ಯವಸ್ಥೆಯು ಎಲ್ಲಾ ತೆರೆದ ಕಡತಗಳ ಜಾಗತಿಕ ಕೋಷ್ಟಕವನ್ನು ಸಹ ನವೀಕರಿಸುತ್ತದೆ, ಇದನ್ನು ಪ್ರಸ್ತುತ ಯಾವುದೇ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಕಡತವು ಬಳಕೆಯಲ್ಲಿದೆಯೇ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ. ತೆರೆಯಬೇಕಾದ ಕಡತದ ಹೆಸರು. ಇದು ಎಲ್ಲಿ, ಯಾವ ಕಡತ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ, ಕಡತವು ಕಂಡುಬರುತ್ತದೆ (ಅಥವಾ ಅದನ್ನು ರಚಿಸಬೇಕು) ಎಂಬುದನ್ನು ವಿವರಿಸುವ ಕಡತ ಮಾರ್ಗವನ್ನು ಒಳಗೊಂಡಿದೆ. ಓಪನ್ಎಟಿ ಸಾಪೇಕ್ಷ ಮಾರ್ಗವನ್ನು ನಿರೀಕ್ಷಿಸುತ್ತದೆ. ಆಫ್ಲ್ಯಾಗ್ ಐಚ್ಛಿಕ ನಿಯತಾಂಕಗಳನ್ನು ಒಟ್ಟಿಗೆ ಸೇರಿಸುವ ಮೂಲಕ ಮತ್ತು (<fcntl.h> ನಿಂದ) ಈ ವಾದವು ರೂಪುಗೊಳ್ಳುತ್ತದೆಃ ಆಯ್ಕೆ ನಿಯತಾಂಕಗಳಲ್ಲಿ ಇವು ಸೇರಿವೆಃ O _ APPEND ದತ್ತಾಂಶವನ್ನು ಫೈಲ್ನ ಅಂತ್ಯಕ್ಕೆ ಸೇರಿಸಲಾಗುತ್ತದೆ. ಕಡತದ ಕಾರ್ಯಾಚರಣೆಗಳು ಯಾವಾಗಲೂ ಸ್ಥಾನ ಸೂಚಕವನ್ನು ಕಡತದ ಅಂತ್ಯಕ್ಕೆ ಸರಿಹೊಂದಿಸುತ್ತವೆ. O _ CREAT ಕಡತವು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದಿದ್ದರೆ ಅದನ್ನು ರಚಿಸಿ; ಇಲ್ಲದಿದ್ದರೆ ತೆರೆದ ಕಡತವು ENOENT ಗೆ ದೋಷವನ್ನು ಹೊಂದಿಸುವಲ್ಲಿ ವಿಫಲವಾಗುತ್ತದೆ. ಫೈಲ್ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ O _ EXCL ಅನ್ನು O _ CREAT ನೊಂದಿಗೆ ಬಳಸಲಾಗುತ್ತದೆ, ನಂತರ ವಿಫಲಗೊಳ್ಳುತ್ತದೆ, EERRNO ಅನ್ನು EEXIST ಗೆ ಹೊಂದಿಸುತ್ತದೆ. O _ TRUNC ಕಡತವು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ, ಅದರ ಹಿಂದಿನ ವಿಷಯಗಳನ್ನು ತ್ಯಜಿಸಿ, ಅದನ್ನು ಖಾಲಿ ಕಡತವಾಗಿ ಕಡಿಮೆ ಮಾಡಿ. ಸಾಧನ ಅಥವಾ ಹೆಸರಿಸಲಾದ ಪೈಪ್ಗೆ ಅನ್ವಯಿಸುವುದಿಲ್ಲ. ಹೆಚ್ಚುವರಿ ಧ್ವಜಗಳು ಮತ್ತು ದೋಷಗಳನ್ನು ಮುಕ್ತ ಕರೆಯಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ. ಕ್ರಿಯೇಟ್ () ಅನ್ನು ಹೀಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗಿದೆಃ int ಕ್ರಿಯೇಟ್ (ಕಾನ್ಸ್ಟ್ ಚಾರ * ಪಥ, ಮೋಡ್ _ ಟಿ ಮೋಡ್) {ರಿಟರ್ನ್ ಓಪನ್ (ಪಥ, O _ WRONLY|O_CREAT |O_TRUNC, ಮೋಡ್);} fopen r, w, a ಮತ್ತು + ನಂತಹ ಸ್ಟ್ರಿಂಗ್ ಫ್ಲಾಗ್ಗಳನ್ನು ಬಳಸುತ್ತದೆ ಮತ್ತು fgets, fputs ಮತ್ತು fclose ನೊಂದಿಗೆ ಬಳಸುವ ಫೈಲ್ ಪಾಯಿಂಟರ್ ಅನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ. ಹೊಸ ಕಡತವನ್ನು ರಚಿಸುವಾಗ ಮಾತ್ರ ಐಚ್ಛಿಕ ಮತ್ತು ಪ್ರಸ್ತುತವಾದ ಮೋಡ್, ಕಡತದ ಅನುಮತಿಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ. ಮಾಲೀಕರು, ಗುಂಪು ಅಥವಾ ಎಲ್ಲಾ ಬಳಕೆದಾರರು ಕಡತವನ್ನು ಓದುವುದು, ಬರೆಯುವುದು ಅಥವಾ ಕಾರ್ಯಗತಗೊಳಿಸುವುದು ಇವುಗಳಲ್ಲಿ ಸೇರಿವೆ. ಕರೆ ಪ್ರಕ್ರಿಯೆಯ ಉಮಾಸ್ಕ್ನಿಂದ ಮೋಡ್ ಅನ್ನು ಮರೆಮಾಡಲಾಗಿದೆಃ ಉಮಾಸ್ಕ್ನಲ್ಲಿ ಹೊಂದಿಸಲಾದ ಬಿಟ್ಗಳನ್ನು ಮೋಡ್ನಲ್ಲಿ ತೆರವುಗೊಳಿಸಲಾಗುತ್ತದೆ. ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ ಅನ್ನು ಸಹ ನೋಡಿ-ಇದು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಓಪನ್ ನೋಟ್ಸ್ಗೆ ಸಂಬಂಧಿಸಿದ ಇತರ ಕಾರ್ಯಗಳು ಡಬ್ಲ್ಯೂ. ರಿಚರ್ಡ್ ಸ್ಟೀವನ್ಸ್ ಅವರ ಯುನಿಕ್ಸ್ ಪರಿಸರದಲ್ಲಿ ಸುಧಾರಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಸುಮಿತಾಭ್ ದಾಸ್ ಅವರ ಯುನಿಕ್ಸ್ ಪರಿಕಲ್ಪನೆ ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ ಸಿ ಪೋಸಿಕ್ಸ್ ಲೈಬ್ರರಿ ಸಿಸ್ಟಮ್ ಉದಾಹರಣೆ ಸಿ ಕೋಡ್ ಹೊಂದಿರುವ ಲೇಖನಗಳನ್ನು ಕರೆಯುತ್ತದೆ.