SORU
3 Kasım 2014, PAZARTESİ


Neden bu program yazdırma "çatal&mi!; "4 kez?

Neden bu program “çatal dilli!” yazdırın 4 kere mi?

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

int main(void) {

  fork() && (fork() || fork());

  printf("forked!\n");
  return 0;
}

CEVAP
3 Kasım 2014, PAZARTESİ


fork() ilk verir çocuk bu sürecin içinde sıfır olmayan bir değer (p0) ve 0 (p1 diyelim).

P1 && Kısa Devre alınmış ve süreci printf ve sona erer diyor. P0 süreci ifade kalan değerlendirmek gerekir. fork() tekrar, böylece yeni bir alt işlem (p2) oluşturma çağırır.

*6 p0* döndürür sıfır olmayan bir değer, ve || kısa devre işlemi printf ve sona erer çağırır alınır.

P2, fork() 0 değerini döndürür, böylece geri kalan || olmalı değerlendirdi, son fork(); potansiyel müşteri için bu yaratılışın bir çocuk için p2 (çağrı p3).

P2 printf yürütür ve sona erdirir.

P3 printf yürütür ve sona erdirir.

4 printfs sonra yürütülür.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • EatingIn

    EatingIn

    12 EKİM 2013
  • George McCarron

    George McCar

    29 Mayıs 2013
  • MattSteffanina 2

    MattSteffani

    28 Kasım 2007