PDA

Tam Sürümünü Görmek İçin : Bu kodun output'u nedir?


eMPaTi
29/05/2007, 13:25
Merhaba,

Java'ile calisiyorum ve C++ ile ilgili icinden cikamadigim birkac sorum var. Yardimci olacak arkadaslara simdiden tesekkurler.


#include <stdlib.h>
void main(void) {
int i = 0 ;
for( i = 1; i < 3; i++ ) {
fork() ;
print(‘’Regel i='’,i ) ;
}
}

Bu programin output'u nedir? Araya fork() girdiginde neyi degistirir?

Yada asagidaki gibimidir?

Regel i=2
Regel i=3


kiyas
29/05/2007, 13:38
fork yeni bir process oluşturur diye biliyorum yani koda göre her i değeri için
program tekrardan çalıştırılır ama öyle olursada sonsuz döngüye girer devamlı yeni altprocessler yaratılır ve alprocessin altı yaratılır...pid değeri ile kontrol ediyorduk sanırım ama tam hatırlamıom kolay gele...


burda anlatıyor sanırım...
http://www.linuxfocus.org/Turkce/November2002/article272.shtml

mr_c
31/05/2007, 00:39
Linux ta derlemek lazım ama fork(); paremetre almaz ama parametre döndürür. Döndürdüğü parametre kullanılmamış, ama prosesi başlattığında kontrolü child prosese bırakıyorsa ilginç şeyler yapabilir.

http://www.amparo.net/ce155/fork-ex.html fork() genel kullanımı.

myavuzselim
31/05/2007, 01:51
Bildigim kadariyla fork cagrildigi anda process'inin bir kopyasi yaratilir, iki ayri process olarak calisirlar (bildigim tek fark fork'un donus degeri). Her dongude process sayisini fork cagirarak ikiye katliyorsun, yani toplam 4 process calisacak. i=1 iken fork ile 2 process icin print(i) calisacak. Sonra her iki process icin i=2 olacak, process sayisi ikiye katlanip dordu icin birden print(i) calisacak.
Yani 1,1,2,2,2,2 gibi bir cikti beklenebilir. Ama processler ayni anda calistigi icin ayni sirada olma zorunluluklari yok. 1,2,2,1,2,2 gibi bir cikti da olabilir yani.

eezgu
01/06/2007, 08:26
paylaşım için teşekkürler. bir de başlıktaki output kelimesini çıktı olarak değiştirebilir miyiz acaba?

mr_c
02/06/2007, 03:07
fork() için çatal,
process için işlem,
program için "Henüz Bulamadım"

pid için bu kısaltmaya da uyduramadım henüz birşey, (işlem kimliği ?! ik olsun mu)

Türkçe hassasiyeti için yanlış bir yer programlama alanı takılmamak lazım bence...