Ö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
#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
#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 |