CodeBlanks Logo Icon CodeBlanks

Özet - POSIX

  • C kursu
  • İleri seviye
  • Ders 6/83
  • 5 dk

open, read ve write'ı birleştirerek bir dosya kopyalama programı yazarsın.

POSIX I/O döngüsü

Bu grupta POSIX'in temel I/O araçlarını öğrendin: open ile dosya açma, read ile okuma, write ile yazma ve close ile kapatma. Dosya tanıtıcıları bu işlemlerin merkezindedir.

Şimdi bunları birleştirerek gerçek bir program yazacaksın: bir dosyaya veri yaz, geri oku ve ekrana bas. Bu döngü — aç, oku veya yaz, kapat — tüm POSIX I/O'nun temelidir. İşletim sistemi seviyesinde dosya kopyalama bile aynı adımlardan oluşur.

Uygulama Dosya gidiş-dönüş

open("veri.txt", O_CREAT | O_WRONLY | O_TRUNC, 0644) ile yazma için aç. write(fd, "Merhaba\n", 8) ile veri yaz ve close(fd). Sonra open("veri.txt", O_RDONLY) ile oku, read(fd2, buf, 8) ile oku ve write(1, buf, 8) ile stdout'a yaz.

Başlangıç kodu

main.c
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>

// veri.txt'ye yaz, geri oku, stdout'a bas

int main(void) {
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>

int main(void) {
    int fd = open("veri.txt", O_CREAT | O_WRONLY | O_TRUNC, 0644);
    write(fd, "Merhaba\n", 8);
    close(fd);
    int fd2 = open("veri.txt", O_RDONLY);
    char buf[16];
    memset(buf, 0, sizeof(buf));
    read(fd2, buf, 8);
    write(1, buf, 8);
    close(fd2);
    return 0;
}

Beklenen çıktı

Merhaba

Sonraki adımlar

POSIX I/O'yu öğrendin; sıra süreç yönetiminde. Sonraki gruplarda fork ile süreç oluşturmayı, exec ile program değiştirmeyi ve wait ile beklemeyi göreceksin.

Bu temeller üzerinde soket programlama, sinyal yönetimi ve çoklu iş parçacığı gelir. Hepsi POSIX'in parçasıdır ve dosya tanıtıcısı mantığını kullanır: soketler de birer tanıtıcıdır, borular da. Öğrendiğin read ve write çağrıları her yerde karşına çıkacak.

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Dosya kopyalamada hangi sıra izlenir?

  • write, read, close
  • open, read, write Doğru cevap
  • close, open, read
  • read, write, open

Açıklama: Önce open, sonra read, sonra write ile kopyalarsın.

2 POSIX çağrılarını rollere eşle

Kavram Anlamı
open Dosya açar
read Veri okur
write Veri yazar
close Tanıtıcıyı kapatır

İleri seviye bölümündeki tüm dersler