Re: [LINUX:4171] Help on "Select" command (About Programming)

Can Baysal (baysalc@boun.edu.tr)
Mon, 19 Jan 1998 16:03:34 +0200


Serkan AKCIN wrote:
>
> Selam,
> Linux altinda "select" komutunu kullanan arkadaslara bir iki sorum
> olacakti.

Ben select'i bir terminal emulatoru icin kullandim, daha dogrusu
kullanamaya baslamistim ki proje yattigi icin pesini biraktim. Aslinda
kisaca bir mee toooooo maili atardim, cozum bulursaniz bana da yazin
diye ama o kadar ucuza yatmasam iyi olacak. Ben en son su noktaya
gelmistim:

Ana program gerekli butun dosyalari, socket'leri falan actiktan sonra
forkluyor. Processin bir kolu select kullanarak gelen data'yi takip
ediyor, diger kolu da ncurses kullanarak ekrani takip ediyor ve gereken
datayi, diger kismin select'le takip ettigi bir dosyaya basiyor.
Daha ekonomik bir yol bulursaniz ogrenmek hosuma gider. Bu anlattigim
benim problemimi buyuk olcude hafifletmisti.

> int select(int n,fd_set *readfds,...,struct timeval *timeout);
> Bu komutu kullanma amacim bir chat programinda bir sonsuz dongu icerisinde
> bana hangi file descriptorun degistigini belirtmesi ve bende ona gore
> algoritmami degistirmeliyim.
> connect olurken bana gelen File Descriptor(FD) yi ve STDIN'i(0) in
> degerlerini 1>> bir saga kaydirip "veyalama" ile int n degerine
> yolluyorum.Porttan bir request oldugunda bana FD_ISSET ile FD'yi kontrol
> edebilyorum.Ama STDIN icin bu kosul gerceklesmiyor.. Yani konsoldaki
> veya terminaldeki kisi ENTER'a basmadigi surece select TRUE olmuyor...

Su kaydirip veyalama isini anlamadim aslinda, ama bir iki yerde
stdin'in NON_BLOCKING moda gecmesi gerektiginden soz ediyorlardi, ben
ugrastim, key stroke kaybediyor. Bir ara ass. yazmayi dusundum, acikcasi
Linux altinda gozum yemedi, DOS'ta (utanc verici ama) rahatim da,
Linux'ta hata yapmak makinanin ve sinirlerimin pek hosuna gitmeyen
sonuclara yol acabilirdi (Novell uzerinde C tecrubem var da, serverlari
oturtmanin pek hos olmayan sonuclarini biliyorum)

> Kisaca hem portu hemde klavyeyi karakter karakter kontrol etmemi
> saglayacak bilgi ve baska komut dizileri varsa bana bildirirseniz
> sevinirim...
>
> #####################################
> Saygilar,
> Serkan AKCIN (compsci3)
> E-Mail: serkan@eniac.cc.selcuk.edu.tr
> #####################################

-- 
-------------------------------------------------------------------
|  Can Baysal <baysalc@boun.edu.tr> |        System Manager       |
-------------------------------------------------------------------
		never cared for what they say
		never cared for games they play
		never cared for what they do
		never cared for what they know
        	and I know