RE: [Linux-programlama] select

---------

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

From: Burak DEMIRKOL (burak.demirkol@isoft.com.tr)
Date: Fri 19 Nov 2004 - 09:27:08 EET


Düşündümde evet en mantıkılısı pipe kullanmam. Sana katılıyorum. Zaten yaptığım şey bir nevi kendi processim içinde haberleşme olduğu için isimsiz pipe bile işimi görür. Hem select den çıkarmak için kullanırım hemde selectten neden çıkmış diye pipe ın içini okuyup değişik kontroller uygulayabilirim.

Saol.

Burak DEMİRKOL

Yazılım Geliştirme Uzmanı - ISOFT

 

Mihribat Cad. Eryılmaz Plaza No:223 Kat 5

34810 Kavacık İstanbul - Türkiye

Tel +90 216 413 5000 Pbx

Fax +90 216 413 7377

e-mail burak.demirkol@isoft.com.tr

-----Original Message-----
From: linux-programlama-bounces@liste.linux.org.tr [mailto:linux-programlama-bounces@liste.linux.org.tr] On Behalf Of Ali Alphan Bayazit
Sent: Thursday, November 18, 2004 7:05 PM
To: linux-programlama@liste.linux.org.tr
Subject: RE: [Linux-programlama] select

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

_______________________________________________ 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.