C ಪ್ರೋಗ್ರಾಮರ್ ಪಠ್ಯ ಫೈಲ್ ಅಥವಾ ಬೈನರಿ ಫೈಲ್ ಅನ್ನು ಹೇಗೆ ರಚಿಸುತ್ತದೆ, ತೆರೆಯುತ್ತದೆ ಮತ್ತು ಮುಚ್ಚುತ್ತದೆ ಎಂಬುದನ್ನು ವಿವರಿಸುತ್ತದೆ.
ಫೈಲ್, ಅಂದರೆ ಬೈಟ್ಗಳ ಸರಣಿ, ಅದು ಪಠ್ಯ ಫೈಲ್ ಆಗಿರಲಿ ಅಥವಾ ಬೈನರಿ ಫೈಲ್ ಆಗಿರಲಿ, ಸಿ ಭಾಷೆ, ಉನ್ನತ ಮಟ್ಟದ ಕಾರ್ಯಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಒದಗಿಸುವುದಲ್ಲದೆ, ಶೇಖರಣಾ ಸಾಧನದಲ್ಲಿ ಫೈಲ್ಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಆಧಾರವಾಗಿರುವ (OS) ಕರೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ. . ಈ ಅಧ್ಯಾಯವು ಡಾಕ್ಯುಮೆಂಟ್ ನಿರ್ವಹಣೆಯಲ್ಲಿ ಪ್ರಮುಖ ಕರೆಗಳನ್ನು ವಿವರಿಸುತ್ತದೆ.
ಓಪನ್-ಫೈಲ್
ಸಾಮಾನ್ಯವಾಗಿ ಹೊಸ ಫೈಲ್ ರಚಿಸಲು ಅಥವಾ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಫೈಲ್ ಅನ್ನು ತೆರೆಯಲು fopen () ಕಾರ್ಯವನ್ನು ಬಳಸುವುದರಿಂದ, ಈ ಕರೆಯು ಹರಿವನ್ನು ನಿಯಂತ್ರಿಸಲು ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಿರುವ ಫೈಲ್ ಪ್ರಕಾರದ ವಸ್ತುವನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ. ಈ ಫಂಕ್ಷನ್ ಕರೆಯ ಮೂಲಮಾದರಿ ಇಲ್ಲಿದೆ:
FILE *fopen (ಕಾನ್ಸ್ಟ್ ಚಾರ್ * ಫೈಲ್ ಹೆಸರು, ಕಾನ್ಸ್ಟ್ ಚಾರ್ * ಮೋಡ್);
ಇಲ್ಲಿ ಫೈಲ್ ಹೆಸರು ಫೈಲ್ ಅನ್ನು ಹೆಸರಿಸಲು ಸ್ಟ್ರಿಂಗ್ ಆಗಿದೆ, ಪ್ರವೇಶ ಮೋಡ್ನ ಮೌಲ್ಯವು ಈ ಕೆಳಗಿನ ಮೌಲ್ಯಗಳಲ್ಲಿ ಒಂದಾಗಿರಬಹುದು:
ಮಾದರಿ | ವಿವರಣೆ |
r | ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪಠ್ಯ ಫೈಲ್ ಅನ್ನು ತೆರೆಯಿರಿ ಅದು ಅದನ್ನು ಓದಲು ಅನುಮತಿಸುತ್ತದೆ. |
w | ಫೈಲ್ಗೆ ಬರೆಯಲು ಅನುಮತಿಸುವ ಪಠ್ಯ ಫೈಲ್ ತೆರೆಯಿರಿ. ಫೈಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದಿದ್ದರೆ, ಹೊಸ ಫೈಲ್ ಅನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ. ಇಲ್ಲಿ, ನಿಮ್ಮ ಪ್ರೋಗ್ರಾಂ ಫೈಲ್ನ ಆರಂಭದಿಂದ ವಿಷಯವನ್ನು ಬರೆಯುತ್ತದೆ. ಫೈಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ, ಅದನ್ನು ಶೂನ್ಯ ಉದ್ದಕ್ಕೆ ಮೊಟಕುಗೊಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಮರು-ಬರೆಯಲಾಗುತ್ತದೆ. |
a | ಪಠ್ಯ ಫೈಲ್ ತೆರೆಯಿರಿ ಮತ್ತು ಫೈಲ್ಗೆ ಅನುಬಂಧ ಮೋಡ್ನಲ್ಲಿ ಬರೆಯಿರಿ. ಫೈಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದಿದ್ದರೆ, ಹೊಸ ಫೈಲ್ ಅನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ. ಇಲ್ಲಿ, ನಿಮ್ಮ ಪ್ರೋಗ್ರಾಂ ನೀವು ಈಗಾಗಲೇ ಹೊಂದಿರುವ ಫೈಲ್ಗಳಿಗೆ ವಿಷಯವನ್ನು ಸೇರಿಸುತ್ತದೆ. |
r+ | ಫೈಲ್ ಅನ್ನು ಓದಲು ಮತ್ತು ಬರೆಯಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಪಠ್ಯ ಫೈಲ್ ಅನ್ನು ತೆರೆಯಿರಿ. |
w+ | ಫೈಲ್ ಅನ್ನು ಓದಲು ಮತ್ತು ಬರೆಯಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಪಠ್ಯ ಫೈಲ್ ಅನ್ನು ತೆರೆಯಿರಿ. ಫೈಲ್ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ, ಫೈಲ್ ಅನ್ನು ಶೂನ್ಯ ಉದ್ದಕ್ಕೆ ಮೊಟಕುಗೊಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಫೈಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದಿದ್ದರೆ, ಹೊಸ ಫೈಲ್ ಅನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ. |
a+ | ಫೈಲ್ ಅನ್ನು ಓದಲು ಮತ್ತು ಬರೆಯಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಪಠ್ಯ ಫೈಲ್ ಅನ್ನು ತೆರೆಯಿರಿ. ಫೈಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದಿದ್ದರೆ, ಹೊಸ ಫೈಲ್ ಅನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ. ಫೈಲ್ನ ಪ್ರಾರಂಭದಲ್ಲಿ ಓದುವಿಕೆ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ ಮತ್ತು ಬರೆಯುವಿಕೆಯು ಕೇವಲ ಅನುಬಂಧ ಮೋಡ್ನಲ್ಲಿದೆ. |
ಬೈನರಿ ಫೈಲ್ ಅನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಿದರೆ, ಮೇಲಿನದನ್ನು ಬದಲಾಯಿಸಲು ಕೆಳಗಿನ ಪ್ರವೇಶ ಮೋಡ್ ಅನ್ನು ಬಳಸಿ:
"rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"
ಮುಚ್ಚಿದ ಫೈಲ್
ಫೈಲ್ ಅನ್ನು ಮುಚ್ಚಲು, ದಯವಿಟ್ಟು fclose() ಕಾರ್ಯವನ್ನು ಬಳಸಿ. ಕಾರ್ಯದ ಮೂಲಮಾದರಿಯು ಈ ಕೆಳಗಿನಂತಿರುತ್ತದೆ:
int fclose (FILE *fp);
- ಫೈಲ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಮುಚ್ಚಿದರೆ, fclose() ಕಾರ್ಯವು ಶೂನ್ಯವನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ ಮತ್ತು ದೋಷವು EOF ಅನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ. ಈ ಕಾರ್ಯವು ವಾಸ್ತವವಾಗಿ, ಬಫರ್ನಿಂದ ಡೇಟಾವನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ, ಫೈಲ್ ಅನ್ನು ಮುಚ್ಚುತ್ತದೆ ಮತ್ತು ಆ ಫೈಲ್ಗೆ ಬಳಸಲಾದ ಎಲ್ಲಾ ಮೆಮೊರಿಯನ್ನು ಬಿಡುಗಡೆ ಮಾಡುತ್ತದೆ. EOF ಎಂಬುದು ಹೆಡರ್ ಫೈಲ್ stdio.h ನಲ್ಲಿ ಸ್ಥಿರವಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ
C ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಲೈಬ್ರರಿಯು ಫೈಲ್ಗಳನ್ನು ಅಕ್ಷರಗಳ ಮೂಲಕ ಅಥವಾ ಸ್ಥಿರ-ಉದ್ದದ ಸ್ಟ್ರಿಂಗ್ನಂತೆ ಓದಲು ಮತ್ತು ಬರೆಯಲು ವಿವಿಧ ಕಾರ್ಯಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ.
ಫೈಲ್ಗೆ ಬರೆಯಿರಿ
ಸ್ಟ್ರೀಮ್ಗೆ ಅಕ್ಷರಗಳನ್ನು ಬರೆಯಲು ಸರಳವಾದ ಕಾರ್ಯಗಳು ಇಲ್ಲಿವೆ:
int fputc (int c, FILE *fp);
fputc () ಕಾರ್ಯವು c ನಿಯತಾಂಕದ ಅಕ್ಷರ ಮೌಲ್ಯವನ್ನು fp ಸೂಚಿಸುವ ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ಗೆ ಬರೆಯುತ್ತದೆ. ಬರಹಗಳು ಯಶಸ್ವಿಯಾದರೆ, ದೋಷ ಸಂಭವಿಸಿದಲ್ಲಿ ಅದು ಲಿಖಿತ ಅಕ್ಷರ ಮತ್ತು EOF ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಸ್ಟ್ರೀಮ್ಗೆ ಶೂನ್ಯದೊಂದಿಗೆ ಸ್ಟ್ರಿಂಗ್ ಅಂತ್ಯವನ್ನು ಬರೆಯಲು ನೀವು ಈ ಕೆಳಗಿನ ಕಾರ್ಯವನ್ನು ಬಳಸಬಹುದು:
int fputs ( const char *s , FILE *fp );
fputs () ಕಾರ್ಯವು fp ಸೂಚಿಸುವ ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ಗೆ ಸ್ಟ್ರಿಂಗ್ s ಅನ್ನು ಬರೆಯುತ್ತದೆ. ಬರಹಗಳು ಯಶಸ್ವಿಯಾದರೆ, ಅದು ಋಣಾತ್ಮಕವಲ್ಲದ ಮೌಲ್ಯವನ್ನು ಮತ್ತು ದೋಷ ಸಂಭವಿಸಿದಲ್ಲಿ EOF ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ನೀವು int fprintf ಕಾರ್ಯವನ್ನು ಬಳಸಬಹುದು (FILE * fp, const char * ಸ್ವರೂಪ,...) ಫೈಲ್ಗೆ ಸ್ಟ್ರಿಂಗ್ ಬರೆಯುತ್ತದೆ. ಕೆಳಗಿನ ಉದಾಹರಣೆಯನ್ನು ಪ್ರಯತ್ನಿಸಿ:
ಗಮನಿಸಿ:ನೀವು ಲಭ್ಯವಿರುವ tmp ಡೈರೆಕ್ಟರಿಯನ್ನು ಹೊಂದಿರುವಿರಾ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ಮತ್ತು ಅದು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದಿದ್ದರೆ, ನೀವು ಅದನ್ನು ಮೊದಲು ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ ರಚಿಸಬೇಕಾಗಿದೆ.
/ tmp ಸಾಮಾನ್ಯವಾಗಿ ಲಿನಕ್ಸ್ ಸಿಸ್ಟಮ್ನಲ್ಲಿ ತಾತ್ಕಾಲಿಕ ಡೈರೆಕ್ಟರಿಯಾಗಿದೆ. ನೀವು ವಿಂಡೋಸ್ ಸಿಸ್ಟಮ್ನಲ್ಲಿ ರನ್ ಮಾಡಿದರೆ, ಸ್ಥಳೀಯ ಪರಿಸರದಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಡೈರೆಕ್ಟರಿಗೆ ನೀವು ಅದನ್ನು ಮಾರ್ಪಡಿಸಬೇಕಾಗುತ್ತದೆ, ಉದಾಹರಣೆಗೆ: C: \ tmp, D: \ tmp, ಇತ್ಯಾದಿ.
ಜೀವಂತ ಉದಾಹರಣೆ
#ಸೇರಿಸು
ಮೇಲಿನ ಕೋಡ್ ಅನ್ನು ಕಂಪೈಲ್ ಮಾಡಿದಾಗ ಮತ್ತು ಕಾರ್ಯಗತಗೊಳಿಸಿದಾಗ, ಅದು ಹೊಸ ಫೈಲ್ test.txt inthe / tmp ಡೈರೆಕ್ಟರಿಯನ್ನು ರಚಿಸುತ್ತದೆ. ಮತ್ತು ಎರಡು ವಿಭಿನ್ನ ಕಾರ್ಯಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಎರಡು ಸಾಲುಗಳಿಗೆ ಬರೆಯುತ್ತದೆ. ಈ ಫೈಲ್ ಅನ್ನು ಮುಂದೆ ಓದೋಣ.
ಫೈಲ್ ಓದಿ
ಫೈಲ್ನಿಂದ ಒಂದೇ ಅಕ್ಷರವನ್ನು ಓದಲು ಕೆಳಗಿನ ಸರಳ ಕಾರ್ಯವಾಗಿದೆ:
int fgetc (FILE * fp);
fgetc () ಕಾರ್ಯವು ಎಫ್ಪಿ ಪಾಯಿಂಟ್ಗಳ ಇನ್ಪುಟ್ ಫೈಲ್ನಿಂದ ಅಕ್ಷರವನ್ನು ಓದುತ್ತದೆ. ರಿಟರ್ನ್ ಮೌಲ್ಯವು ಓದುವ ಅಕ್ಷರವಾಗಿದೆ ಮತ್ತು ದೋಷ ಸಂಭವಿಸಿದಲ್ಲಿ EOF ಆಗಿದೆ. ಕೆಳಗಿನ ಕಾರ್ಯವು ಸ್ಟ್ರೀಮ್ನಿಂದ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಓದಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ:
ಚಾರ್ * fgets (ಚಾರ್ * ಬಫ್, ಇಂಟ್ ಎನ್, ಫೈಲ್ * ಎಫ್ಪಿ);
fgets () ಕಾರ್ಯವು fp ನಿರ್ದೇಶಿಸಿದ ಇನ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ನಿಂದ n-1 ಅಕ್ಷರಗಳನ್ನು ಓದುತ್ತದೆ. ಇದು ರೀಡ್ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಬಫರ್ ಬಫ್ಗೆ ನಕಲಿಸುತ್ತದೆ ಮತ್ತು ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಕೊನೆಗೊಳಿಸಲು ಕೊನೆಯಲ್ಲಿ ಶೂನ್ಯ ಅಕ್ಷರವನ್ನು ಸೇರಿಸುತ್ತದೆ.
ಕೊನೆಯ ಅಕ್ಷರವನ್ನು ಓದುವ ಮೊದಲು ಈ ಕಾರ್ಯವು ಮುರಿದ ಸಾಲಿನ ಅಕ್ಷರ '\ n' ಅಥವಾ ಫೈಲ್ನ ಅಂತ್ಯದ EOF ಅನ್ನು ಎದುರಿಸಿದರೆ, ನಂತರ ಸಾಲು ವಿರಾಮಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ಓದುವ ಅಕ್ಷರಗಳಿಗೆ ಮಾತ್ರ ಹಿಂತಿರುಗುತ್ತದೆ. ಫೈಲ್ನಿಂದ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಓದಲು ನೀವು int fscanf (FILE * fp, const char * ಫಾರ್ಮ್ಯಾಟ್,...) ಕಾರ್ಯವನ್ನು ಸಹ ಬಳಸಬಹುದು, ಆದರೆ ಮೊದಲ ಸ್ಪೇಸ್ ಮತ್ತು ಲೈನ್ ಬ್ರೇಕ್ ಎದುರಾದಾಗ ಅದು ಓದುವುದನ್ನು ನಿಲ್ಲಿಸುತ್ತದೆ.
ಜೀವಂತ ಉದಾಹರಣೆ
#ಸೇರಿಸು
ಮೇಲಿನ ಕೋಡ್ ಅನ್ನು ಕಂಪೈಲ್ ಮಾಡಿದಾಗ ಮತ್ತು ಕಾರ್ಯಗತಗೊಳಿಸಿದಾಗ, ಇದು ಹಿಂದಿನ ವಿಭಾಗದಲ್ಲಿ ರಚಿಸಲಾದ ಫೈಲ್ಗಳನ್ನು ಓದುತ್ತದೆ, ಈ ಕೆಳಗಿನ ಫಲಿತಾಂಶಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ:
1: ಇದು 2: fprintf ಗಾಗಿ ಪರೀಕ್ಷಿಸುತ್ತಿದೆ...
3: ಇದು ಎಫ್ಪುಟ್ಗಳಿಗಾಗಿ ಪರೀಕ್ಷೆಯಾಗಿದೆ...
ಮೊದಲನೆಯದಾಗಿ, fscanf() ನ ವಿಧಾನವು ಕೇವಲ ಇದನ್ನು ಓದುತ್ತದೆ .ಏಕೆಂದರೆ ಅದು ಹಿಂಭಾಗದಲ್ಲಿ ಒಂದು ಜಾಗವನ್ನು ಎದುರಿಸುತ್ತದೆ. ಎರಡನೆಯದಾಗಿ, ಸಾಲಿನ ಅಂತ್ಯದವರೆಗೆ ಉಳಿದ ಭಾಗವನ್ನು ಓದಲು ಫಂಕ್ಟನ್ ಫ್ಗೆಟ್ಸ್ () ಗೆ ಕರೆ ಮಾಡಿ. ಅಂತಿಮವಾಗಿ, ಎರಡನೇ ಸಾಲನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಓದಲು fgets () ಗೆ ಕರೆ ಮಾಡಿ.
ಬೈನರಿ I / O ಕಾರ್ಯ
ಬೈನರಿ ಇನ್ಪುಟ್ ಮತ್ತು ಔಟ್ಪುಟ್ಗಾಗಿ ಈ ಕೆಳಗಿನ ಎರಡು ಕಾರ್ಯಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ:
size_t fread (ಅನೂರ್ಜಿತ * ptr , size_t size_of_elements , size_t number_of_elements , FILE * a_file ); size_t fwrite (const void *ptr, size_t size_of_elements, size_t number_of_elements, FILE *a_file);
ಶೇಖರಣಾ ಬ್ಲಾಕ್ಗಳಿಗಾಗಿ ಎರಡೂ ಕಾರ್ಯಗಳನ್ನು ಓದಲಾಗುತ್ತದೆ ಮತ್ತು ಬರೆಯಲಾಗುತ್ತದೆ-ಸಾಮಾನ್ಯವಾಗಿ ಅರೇಗಳು ಅಥವಾ ರಚನೆಗಳು.
ಮೇಲಿನ C ಫೈಲ್ ಓದುವಿಕೆ ಮತ್ತು ಬರೆಯುವಿಕೆಯು HDV ಫೋಎಲೆಕ್ಟ್ರಾನ್ ಟೆಕ್ನಾಲಜಿ ಲಿಮಿಟೆಡ್ಗೆ ಸೇರಿದೆ, ಇದು ಸಾಫ್ಟ್ವೇರ್ ತಾಂತ್ರಿಕ ಕಾರ್ಯಾಚರಣೆಯಾಗಿದೆ. ಮತ್ತು ನೆಟ್ವರ್ಕ್ ಸಂಬಂಧಿತ ಸಲಕರಣೆಗಳಿಗಾಗಿ ಕಂಪನಿ (ಉದಾಹರಣೆಗೆ: ACONU/ ಸಂವಹನONU/ ಬುದ್ಧಿವಂತONU/ ಫೈಬರ್ONU, ಇತ್ಯಾದಿ) ಪ್ರಬಲ ಸಾಫ್ಟ್ವೇರ್ ತಂಡವನ್ನು ಒಟ್ಟುಗೂಡಿಸಿದೆ, ಪ್ರತಿಯೊಬ್ಬ ಗ್ರಾಹಕರು ಅಗತ್ಯವಿರುವ ವಿಶೇಷ ಬೇಡಿಕೆಗಳನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡುತ್ತಾರೆ, ನಮ್ಮ ಉತ್ಪನ್ನಗಳು ಹೆಚ್ಚು ಬುದ್ಧಿವಂತ ಮತ್ತು ಸುಧಾರಿತವಾಗಿರಲಿ.