unistd.h
- C kursu
- İleri seviye
- Ders 2/83
- 5 dk
unistd.h içindeki temel fonksiyonları öğrenirsin.
unistd.h başlığı
unistd.h, POSIX'in temel başlık dosyasıdır. İçinde dosya tanıtıcıları, süreçler ve düşük seviyeli I/O için fonksiyonlar tanımlanır. En sık kullandıkların: read, write, close, fork ve getpid.
Bu fonksiyonlar stdio.h'daki fread/fwrite'tan farklıdır: arabellek kullanmazlar, doğrudan tanıtıcı ile çalışırlar. Her çağrı ssize_t döndürür; bu, okunan ya da yazılan bayt sayısıdır. Hata durumunda -1 döner.
ssize_t ve errno
POSIX I/O fonksiyonları ssize_t türünde değer döndürür. Bu tür imzalı bir tamsayıdır: başarıda pozitif, dosya sonunda 0, hatada -1.
Hata olduğunda global errno değişkeni ayarlanır. errno'yu <errno.h> ile dahil edip okuyabilirsin. Örneğin read hata döndürdüğünde errno EAGAIN veya EBADF olabilir. Her zaman dönüş değerini denetle; -1 ise errno'ya bak.
Uygulama write ile çıktı ver
const char *msg = "Merhaba\n"; ile bir ileti tanımla. write(1, msg, 8) ile bu iletiyi stdout'a yaz. 8, iletilen bayt sayısıdır (Merhaba + yeni satır).
Başlangıç kodu
#include <stdio.h>
#include <unistd.h>
// msg değişkenini tanımla
// write ile stdout'a yaz
int main(void) {
return 0;
}Örnek çözüm
#include <stdio.h>
#include <unistd.h>
int main(void) {
const char *msg = "Merhaba\n";
write(1, msg, 8);
return 0;
}Beklenen çıktı
Merhaba
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Fonksiyonları amaçlarına eşle
| Kavram | Anlamı |
|---|---|
read |
Dosyadan okur |
write |
Dosyaya yazar |
close |
Tanıtıcıyı kapatır |
getpid |
Süreç numarası verir |
2 write(1, buf, n) çağrısında 1 neyi belirtir?
- Dosya adını
- Dosya tanıtıcısını Doğru cevap
- Bayt sayısını
- Arabellek boyutunu
Açıklama: 1, stdout tanıtıcısını belirtir.
3 write çağrısı
ssize_t n = ____(1, msg, 8);
ssize_t n = write(1, msg, 8);
Açıklama: write, tanıtıcıya veri yazar.