lseek(2)
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : docbook>lseek(2)



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> 
<chapter lang=ko> 
<!-- ÀÛ¼ºÀÚ : yundream             --> 
<!-- ÀÛ¼ºÀÏ : 2004/03/22           --> 
<!-- ¿¬¶ôó : yundream@joinc.co.kr -->  
 
<!-- ÇÔ¼ö À̸§À» ÀÔ·ÂÇÕ´Ï´Ù --> 
<title>lseek(2)</title> 
 
<!-- ÀÌ°Ç ÇÔ¼ö¿¡ ´ëÇÑ ´ë·«ÀûÀÎ ¼³¸íÀ̱¸¿ä --> 
<para> 
    Àбâ¹× ¾²±â¸¦ À§Çؼ­ ÆÄÀÏÀÇ À§Ä¡¸¦ ÀçÁöÁ¤ 
</para> 
  
<!-- ¿©±â¿¡ ÇÔ¼öÀÇ °£´ÜÇÑ »ç¿ë¹ýÀÌ µé¾î°©´Ï´Ù --> 
<section> 
    <title>»ç¿ë¹ý</title> 
    <para> 
        <screen> 
#include <sys/types.h> 
#include <unistd.h> 
 
off_t lseek(int fildes, off_t offset, int whence); 
        </screen> 
    </para> 
</section> 
 
<!-- ¿©±â¿£ ÇÔ¼öÀÇ ÀÚ¼¼ÇÑ ¼³¸í ÀÌ µé¾î°©´Ï´Ù --> 
<section> 
    <title>¼³¸í</title> 
    <para> 
        lseek()´Â ¿­¸° ÆÄÀÏ ÁöÁ¤ÀÚ <emphasis>fildes</emphasis>·Î ºÎÅÍ  
        <emphasis>offset</emphasis>¸¸Å­ À§Ä¡¸¦ º¯°æÇÑ´Ù. À§Ä¡ º¯°æ½Ã  
        ±âÁØÁ¡À» Á¤ÇÒ ¼ö Àִµ¥ <emphasis>whence</emphasis>¸¦ ÀÌ¿ëÇØ¼­  
        ÁöÁ¤°¡´É ÇÏ´Ù.   
        <variablelist>     
            <varlistentry> 
            <term>SEEK_SET</term>     
            <listitem> 
                <para>     
                ÆÄÀÏÀÇ Ã³À½À» ±âÁØÀ¸·Î offsetÀ» °è»êÇÑ´Ù.     
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>SEEK_CUR</term>     
            <listitem> 
                <para>     
                ÆÄÀÏÀÇ ÇöÀç À§Ä¡¸¦ ±âÁØÀ¸·Î offsetÀ» °è»êÇÑ´Ù. 
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>SEEK_END</term>     
            <listitem> 
                <para>     
                ÆÄÀÏÀÇ ¸¶Áö¸·À» ±âÁØÀ¸·Î offsetÀ» °è»êÇÑ´Ù. 
                </para>     
            </listitem> 
            </varlistentry> 
        </variablelist>     
        ½Ç¼ö·Î ÆÄÀÏÀÇ ¸¶Áö¸·À» ÃʰúÇØ¼­ lseek¸¦ »ç¿ëÇßÀ» °æ¿ì lseek¿¡¼­  
        ¸®ÅÏÀ» ÇÏÁö´Â ¾ÊÁö¸¸ write()ȤÀº read()¿¡¼­ ¿¡·¯¸¦ ¹ß»ýÇÏ°Ô µÇ¹Ç·Î  
        ÁÖÀÇ ÇØ¾ß ÇÑ´Ù.   
    </para> 
</section> 
 
<section> 
    <title>¹Ýȯ°ª</title> 
    <para> 
        ¼º°øÇßÀ» °æ¿ì ÆÄÀÏÀÇ ½ÃÀÛÀ¸·Î ºÎÅÍ ¶³¾îÁø byte¸¸Å­ÀÇ offsetÀ»  
        ¸®ÅÏÇÑ´Ù. ½ÇÆÐÇßÀ» °æ¿ì -1À» ¸®ÅÏÇÑ´Ù.   
    </para> 
</section> 
 
<section> 
    <title>¿¡·¯</title> 
    <para> 
        <variablelist>     
            <varlistentry> 
            <term>EBADF</term>     
            <listitem> 
                <para>     
                    <emphasis>Fildes</emphasis>°¡ ¿­¸° ÆÄÀÏ ÁöÁ¤ÀÚ°¡ ¾Æ´Ï´Ù. 
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>ESPIPE</term>     
            <listitem> 
                <para>     
                    <emphasis>Fildes</emphasis>°¡ ÆÄÀÌÇÁ, ¼ÒÄÏ È¤Àº FIFOÀÌ´Ù.  
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>EINVAL</term>     
            <listitem> 
                <para>     
                    <emphasis>Whence</emphasis>°¡ À¯È¿ÇÑ °ªÀÌ ¾Æ´Ï´Ù.  
                </para>     
            </listitem> 
            </varlistentry> 
        </variablelist>     
    </para> 
</section> 
 
<section> 
    <title>¿¹Á¦</title> 
    <para> 
        <screen> 
#include <unistd.h> 
#include <fcntl.h> 
#include <stdio.h> 
#include <sys/stat.h> 
#include <sys/types.h> 
 
int main(int argc, char **argv) 
{ 
    int fd; 
    int i, buf; 
    fd = open("num.dat", O_RDWR|O_CREAT); 
    if (fd < 0) 
    { 
        perror("error : "); 
        exit(0); 
    } 
    for (i = 1000; i < 1010; i++) 
    { 
        write(fd, (void *)&i, sizeof(i)); 
    } 
    // ÆÄÀÏÀÇ Ã³À½À¸·Î À̵¿ÇÑ ´ÙÀ½ µ¥ÀÌÅ͸¦ Àд´Ù.  
    lseek(fd, 0, SEEK_SET); 
    read(fd, (void *)&buf, sizeof(i)); 
    printf("%d\n", buf); 
 
    // ÆÄÀÏÀÇ Ã³À½ÀÌ·Î À̵¿ÇÑ ´ÙÀ½ 4¹øÂ° ÀÔ·ÂµÈ ¼ýÀÚ¸¦  
    // Àд´Ù.  
    lseek(fd, 4*sizeof(i), SEEK_SET); 
    read(fd, (void *)&buf, sizeof(i)); 
    printf("%d\n", buf); 
} 
        </screen> 
    </para> 
</section> 
 
<section> 
    <title>Âü°í¹®Çå</title> 
    <para> 
        <orderedlist> 
            <listitem> 
                <para> 
                    <ulink url="http://www.joinc.co.kr/modules.php?name=News&file=article&sid=98">seek¸¦ ÀÌ¿ëÇÑ ÆÄÀϳ» À§Ä¡À̵¿</ulink> 
                </para> 
            </listitem> 
        </orderedlist> 
    </para> 
</section> 
</chapter> 
 
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.