CodeBlanks Logo Icon CodeBlanks

/proc

/proc dosya sistemini öğrenirsin.

/proc sanal dosya sistemi

/proc, çekirdeğin ve süreçlerin durumu hakkında bilgi veren sanal dosya sistemidir. Diskte yer kaplamaz; okunduğunda dinamik üretilir.

Her süreç için /proc/<pid>/ dizini vardır: status, maps, cmdline gibi dosyalar içerir. Sistem geneli bilgiler /proc/cpuinfo, /proc/meminfo, /proc/uptime dosyalarındadır. C programları bunları sıradan dosya gibi fopen ile açıp okur. Çekirdek bu verileri anlık üretir; bu yüzden her okuma güncel değer verir.

/proc/self ve dinamik okuma

/proc/self, her sürecin kendisini gösteren özel bir bağlantıdır; getpid() ile uğraşmadan kendi bilgini okursun.

read veya fgets ile dosyayı satır satır okur, sonra ayrıştırırsın. Çekirdek metni biçimlendirilmiş üretir; sscanf ile alan çıkarılır. Örneğin /proc/loadavg beş sayı verir. Çok sık okuma performansı etkileyebilir; bu yüzden önbelleklemek iyi bir alışkanlıktır. /proc yalnızca okunabilir değildir; bazı dosyalara yazarak çekirdek ayarı değiştirilebilir.

Uygulama /proc bilgisi yazdır

void print_proc(const char *path, const char *value) fonksiyonunu tanımla; gövdesi printf("%s: %s\n", path, value); olsun. main içinde bunu ("/proc/self/status", "running") ve ("/proc/cpuinfo", "x86_64") ile çağır.

Başlangıç kodu

main.c
#include <stdio.h>

// print_proc fonksiyonunu tanımla
// /proc/self/status ve /proc/cpuinfo için çağır

int main(void) {
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>

void print_proc(const char *path, const char *value) {
    printf("%s: %s\n", path, value);
}

int main(void) {
    print_proc("/proc/self/status", "running");
    print_proc("/proc/cpuinfo", "x86_64");
    return 0;
}

Beklenen çıktı

/proc/self/status: running
/proc/cpuinfo: x86_64

Soru ve cevaplar

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

1 Hangisi süreç özgü bir /proc yoludur?

  • /proc/cpuinfo
  • /proc/meminfo
  • /proc/uptime
  • /proc/1234/status Doğru cevap

Açıklama: Süreç özgü yollar /proc/<pid>/ biçimindedir.

2 /proc dosyalarını içeriğine eşle

Kavram Anlamı
/proc/cpuinfo İşlemci bilgisi
/proc/meminfo Bellek durumu
/proc/uptime Çalışma süresi
/proc/self/status Kendi sürecim

3 /proc/self/status aç

Soru
FILE *f = fopen("/proc/____", "r");
Cevap
FILE *f = fopen("/proc/self/status", "r");

Açıklama: /proc/self/status kendi sürecinin durumunu verir.

Uzman bölümündeki tüm dersler