Информатика
Ma`lumotlarni o`qish va yozish
Download 7.16 Mb. Pdf ko'rish
|
informatika Mominov
- Bu sahifa navigatsiya:
- 5.16-jadval. Errno.h kutubxonasining funksiyalari.
Ma`lumotlarni o`qish va yozish. Quyi darajada ma`lumotlarni kiritish va
chiqarish read () va write () funksiyalari orqali amalga oshiriladi. Bu funksiyalar prototiplari quyidagi ko`rinishga ega: int read (int fd, char * buffer; unrigned int count) int write (int fd, char * buffer; unsiqned int count) Ikkala funksiya butun o`qilgan yoki yozilgan baytlar sonini qaytaradi. Read funksiyasi fd deskriptori bilan ochilgan fayldan count parametrida ko`rsatilgan miqdordagi baytlarni o`qib, buffer ko`rsatkichi orqali ko`rsatilgan bufferga yozadi. Fayl oxiriga yetganda read() funksiyasi 0 qiymat qaytaradi. Fayldan o`qishda xatolik kelib chiqsa -1 qiymat qaytaradi. O`qish fayldagi joriy pozitsiyadan boshlanadi. Agar fayl matnli rejimda ochilsa, CR va LF simvollari `\n` simvoliga o`zgartiriladi. Write() funksiyasi fd deskriptori bilan ochilgan faylga buffer ko`rsatkichi orqali ko`rsatilgan bufferdan count parametri orqali ko`rsatilgan miqdordagi baytlarni yozib qo`yadi. Yozuv joriy pozitsiyadan boshlanadi. Agar fayl matnli rejimda ochilgan bo`lsa, `\n` simvolini CR va LF simvollar sifatida yoziladi. Agar yozishda xatolik kelib chiqsa, write() funksiyasi -1 qiymat qaytaradi. Errno global 287 o`zgaruvchisi bo`lsa, Errno.h sarlavhali faylda ko`rsatilgan quyidagi o`zgarmaslar biriga teng bo`ladi. 5.16-jadval. Errno.h kutubxonasining funksiyalari. Nomi Vazifasi EACCES fayl yozuvdan himoyalangan ENOSPC tashqi qurilmada bo`sh joy qolmagan EBADF noto`g`ri fayl deskriptori Bu funksiyalar io.h sarlavhali faylda joylashgandir. Quyida bir fayldan ikkinchisiga nusxa olish dasturini ko`rib chiqamiz: 112-listing. Output: #include #include #include #include int main(int argc, char *argv[ ] ) { int fdin , fdout; int n; char buff[BUFSIZ]; if (argc !=3) { cout<< (“: ”); cout<<(“\n %s ”, argv[0]); return 1; } if ((fdin =open(argv[1],O_RDONLY)) ==-1) { perror (argv[1]); return 1; } if ((fdout=open(argv[2], O_WRONLY|O_CREAT|O_TRUNC))== -1) { perror (argv[2]); 288 return 1; } while ((n=read(fdin, buff, BUFSIZ))>0) write (fdout, buff, n ); return 0; } Bufsiz o`zgarmassi iostream.h sarlavhali faylda aniqlangan bo`lib MS DOS uchun 512 bayt ga teng. Download 7.16 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling