Merhaba,

Uzun zamandir bu listeyi zevkle takip ediyorum. Fakat sysprog listesinde bir 
kipirdanma yok. Sistem programlamayla kimsenin ilgilenmedigini dusunmeye 
baslamistim. Bu yaziyi gormem iyi oldu. Sysprog listesinde daha sik gorusmek 
dilegiyle...

Herkese kolay gelsin...

Hakan



> From: [EMAIL PROTECTED]
> To: [email protected]
> Date: Fri, 4 Jan 2008 13:45:41 +0200
> Subject: RE: [FreeBSD] lseek - select
> 
> Merhaba Metin,
> 
> Bizi listeye mi ispiyonluyorsun ne yapıyorsun ;)
> 
> Bu vesile ile sysprog isimli bir mailing listimiz oldugunu hatirlatmak
> isterim.
> 
> Selamlar...
> 
>  
> Baris Simsek
> http://www.enderunix.org/simsek
> http://www.endersys.com.tr
>  
> -----Original Message-----
> From: Metin KAYA [mailto:[EMAIL PROTECTED] 
> Sent: Thursday, January 03, 2008 11:36 PM
> To: [email protected]
> Subject: [FreeBSD] lseek - select
> 
> Merhaba,
> 
> Asagidaki yazilar Murat BALABAN(MB), N. Ersen SISECI(NES), Baris SIMSEK(BS)
> ve Metin KAYA(MK)
> arasinda gecen lseek(2) ve select(2) konulu sohbetten alintidir.
> 
> MK: select(2) 'ye utimeout parametresi olarak NULL verilirse select(2) nasil
> davranir?
> 
> BS: Isletim sistemi select 'e bir sinyal gondermedigi muddetce select dosya
> tanimlayicilari
>     (file descriptor set) uzerinde suresiz olarak bekler.
> 
> 
> 
> MK: Linux device driver'larda read(2) yapilirken asagidaki struct'in
>     llseek fonksiyonu kullaniliyor mu? "strace cat /dev/metin" ile
>     baktigimda "llseek" cagrisi goremedim ama emin olmak icin sormak
> istedim.
> 
>     struct file_operations metin_fops = {
>           .owner   =  THIS_MODULE,
>           .llseek  =  metin_llseek,
>           .read    =  metin_read,
>           .write   =  metin_write,
>           .ioctl   =  metin_ioctl,
>           .open    =  metin_open,
>           .release =  metin_release,
>     };
> 
> MB: open, read ve close hook'lari calisir. sen open(2) edip, lseek(2)
>     calistirirsan ancak o zaman lseek(2) calisir.
> 
> NES: lseek : Seek to a specified position in a file (used for random access
> when reading or writing a file) 
>            - The original seek system call used a 16 bit address 
>            - "lseek" is named because it uses a "long" integer as the
> address to seek to. In practice this is a 32 bit integer on most current
> machines 
>            - The UNIX standards organizations have apparently not yet
> standardized a suitable seek system call for 64 bit addresses 
>            - Currently (January 2005), the llseek system call is available
> on Solaris (hercules), but there is no indication that this system call is
> portable 
>            - Versions of Linux apparently support _llseek() or llseek() for
> raw devices. Compilers may support lseek() as accepting a 64-bit long or add
> lseek64(), according to a compile-time option.
> 
> 
> 
> 
> MK: yani ben metin_read 'i implement ederken lseek kullanmamissam ya da
> explicit olarak
>     cagirmamissam lseek calismaz mi?
> 
> MB: iki system call farkli amaclar icin kullaniliyor. read, sequential
>     olarak dosyadaki/device'daki veriyi okumak icin, lseek ise,
>     dosya/device'da ileri-geri gitmek icin.
> 
>     Semantik olarak, bir system call icinden, ikinci bir system call
>     cagrilmaz, bunun icin cok iyi bir nedenin olmasi lazim.
> 
>     lseek 'i explicit olarak cagirmamissan "strace cat /dev/a" gibi bir
> komutta calismamasi lazim.
> 
>     struct file_operations 'da f_nextoff dosyadaki offset'i (en son kaldigi
> yeri) tutuyor.
>     Yani, bir sonraki read'de buradaki offset degeri esas olacaktir.
> 
>     lseek(2)'i random access yapmak icin kullaniyorsun, yoksa normalde ona
>     gerek kalmadan isletim sistemi en son okudugu yerin state'ini tutuyor.
> 
> 
> 
> 
> NES: "lseek" tanimlanmamissa "tail" gibi bir komutta nasil davranacaktir
> isletim sistemi?
> 
> MB:  Denemek lazim, fakat tahminim
> 
>      #define ENOSYS          38      /* Function not implemented */
> 
>      gibi bir hata aliyor olabilir.
> 
> --                                               
> Metin KAYA                  
> EnderUNIX Software Developer          Endersys Software Engineer
> http://www.EnderUNIX.org/metin        http://www.Endersys.com/
> 
> 
> ---------------------------------------------------------------------
> Listeye soru sormadan once lutfen http://ipucu.enderunix.org sitesine
> bakiniz.
> 
> Cikmak icin, e-mail: [EMAIL PROTECTED]
> Liste arsivi: http://news.gmane.org/gmane.org.user-groups.bsd.turkey
> FreeBSD 6 kitabi cikti! http://www.acikakademi.com/catalog/freebsd6
> 
> 
> 
> 
> ---------------------------------------------------------------------
> Listeye soru sormadan once lutfen http://ipucu.enderunix.org sitesine bakiniz.
> 
> Cikmak icin, e-mail: [EMAIL PROTECTED]
> Liste arsivi: http://news.gmane.org/gmane.org.user-groups.bsd.turkey
> FreeBSD 6 kitabi cikti! http://www.acikakademi.com/catalog/freebsd6
> 
> 

_________________________________________________________________
Windows Live Messenger'ın için Ücretsiz 30 İfadeyi yükle
http://get.live.com

Cevap