• 5.16-jadval. Errno.h kutubxonasining funksiyalari.
  • Ma`lumotlarni o`qish va yozish




    Download 7,16 Mb.
    Pdf ko'rish
    bet173/308
    Sana30.05.2024
    Hajmi7,16 Mb.
    #257687
    1   ...   169   170   171   172   173   174   175   176   ...   308
    Bog'liq
    Информатика

    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.
    1   ...   169   170   171   172   173   174   175   176   ...   308




    Download 7,16 Mb.
    Pdf ko'rish