CodeBlanks Logo Icon CodeBlanks

getpid

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

getpid ve getppid ile süreç kimliğini öğrenirsin.

getpid ve getppid

getpid(), çağıran sürecin kimliğini (PID) döndürür. getppid() ise ebeveyn sürecin kimliğini verir. İkisi de pid_t türünde, negatif olmayan bir tamsayı döndürür.

Her süreç benzersiz bir PID'ye sahiptir. PID 1 genelde init sürecidir. Çocuk fork ile oluşturulduğunda getppid() ebeveynin PID'sini verir. Ebeveyn biterse çocuk init'e evlatlık verilir ve getppid() 1 döner.

PID değerleri

PID'ler işletim sistemi tarafından atanır ve her zaman pozitiftir. fork döndüğü değere bakarak ebeveyn mi çocuk mu olduğunu anlarsın: 0 çocuk, pozitif ebeveyn.

PID'leri doğrudan yazdırmak yerine karşılaştırma için kullanmak daha güvenlidir; çünkü değer sistemden sisteme değişir. Örneğin printf("%d", getpid() > 0) her zaman 1 basar. Bu, PID'nin pozitif olduğunu doğrular.

Uygulama PID'leri denetle

pid_t pid = getpid(); ve pid_t ppid = getppid(); ile kimlikleri al. printf("%d %d\n", pid > 0, ppid > 0); ile her ikisinin pozitif olup olmadığını yazdır. Çıktı 1 1 olmalıdır.

Başlangıç kodu

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

// getpid ve getppid çağır
// her ikisinin > 0 karşılaştırmasını yazdır

int main(void) {
    return 0;
}

Örnek çözüm

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

int main(void) {
    pid_t pid = getpid();
    pid_t ppid = getppid();
    printf("%d %d\n", pid > 0, ppid > 0);
    return 0;
}

Beklenen çıktı

1 1

Soru ve cevaplar

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

1 getppid() ne döndürür?

  • Kendi PID'ni
  • Ebeveynin PID'sini Doğru cevap
  • 0'ı
  • Çocuğun PID'sini

Açıklama: getppid ebeveyn sürecin PID'sini döndürür.

2 PID kavramlarını eşle

Kavram Anlamı
getpid Kendi PID
getppid Ebeveyn PID
pid_t PID türü
fork Süreç kopyalar

3 getpid çağrısı

Soru
pid_t me = ____();
Cevap
pid_t me = getpid();

Açıklama: getpid kendi süreç kimliğini döndürür.

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