RE: [Linux-programlama] select

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Ali Alphan Bayazit (listeci@bayazit.net)
Date: Thu 18 Nov 2004 - 19:04:43 EET


On Thu, 2004-11-18 at 18:11 +0200, Burak DEMIRKOL wrote:
> Yok o olabilir neden olmasın bana sadece gereksiz yere diskte fiziksel
> olarak dosya oluşturmak kötü bi yöntem gibi geldi sizcede öle değilmi?
> Ben hiç bir yeri göstermeyen ve bi şey ifade etmeyen dummy bir
> descriptör varmıdır acaba diye düşündümde bulamadım. /dev/null da
> olmayınca artık ya fifo ya pipe ya da başka bişi bulurum bu iş için.
>
baktigimizda unix tarzi isletim sistemlerinin genel felsefesi mumkun
oldugunca haberlesmeyi dosyalar uzerinden yapmak (/dev,/proc vs). bana
hos bir felsefe gibi geliyor, her ne kadar sizin haberlesmeniz binary de
olsa.

ote yandan normal bir dosya olusturmak cirkin olur sanki. Zaten normal
bir dosya herzaman okunmaya hazir bekler.

fiziksel dosya olusmadigi icin fifo (named pipe) dedim. Sadece
meta-datasi var. pipe ile yapabilirseniz daha iyi tabi en azindan dosya
olusmaz, fakat su anda aklima makul bir cozum gelmiyor sadece pipe ile.

Biraz ucuk ama, aslinda bi soket yaratip, ozel bi portu dinleyebilir ve
telnet ya da nc ile sonlandirma islemini yapabilirsiniz ama, o da
guvenli olmaz.

Aslinda konsollari bile dinleyebilirsiniz, bilmiyorum konsol uygulamasi
mi bu ama.

> Bu arada select fonksiyonu ilgili enteresan bir soru daha geldi
> aklıma. Select fonksiyonu sadece ona verdiğimiz descriptörlerimi baz
> alıyor acaba? Mesela "a.dat" dosyasını farklı 2 process kullanıyor
> olsun. Ama neticede bu iki process farklı iki dosya descriptörü ile
> aynı dosyaya ulaşıcak. Çünkü bildiğim kadarıyla dosya descriptörleri
> process tablosunda ve o process e özgü. Yani aynı dosyayı kullanan iki
> farklı process'e ait farklı dosya descriptörleri olabilir. Bu durumda
> diyelim diğer process de biri o dosyaya yazma yaptığında benim
> processimdeki select fonksiyonu bu durumdan etkilenirmi acaba? Bana
> sanki sadece select fonksiyonuna verilen descriptörler ile dosyaya
> yazma yapıldığında select fonksiyonundan çıkar gibi geldi. O
> yüzden /dev/null kullanmıştım. Ama gördüğüm kadarıyla o dosya her
> zaman okumaya ve yazmaya hazır durumda ve select fonksiyonunu hiç
> bekletmiyor.
>

evet her surecin kendine ait tablosu var, hernekadar numarasi farkli da
olsa, isletim sistemi seviyesinde ayni seyi gosterebilirler (socket,
pipe,fifo vs). Bu sorun olmaz yani. Ama normal bir dosyayi sizin yapmak
istediginiz gibi nasil kullanirsiniz hic bi fikrim yok. Sonucta bir
surec yazmasa da, digeri okumaya hazir olarak gorecek hep.

/dev/null da oyle. Sonucta yazarken sonsuz batak, okurken de 0
uzunluklu, her zaman hazir normal bir dosya gibi davraniyor. Iki
taraftanda durumu degismedi icin, haberlesmede kullanamazsiniz.

Iyi calismalar

-- 
A. Alphan Bayazit
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.