ÇÁ·Î±×·¡¹Ö

 3206, 8/161 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   indra
   http://indra.linuxstudy.pe.kr
   [re] lseek¿¡ °üÇÑ Áú¹®ÀÔ´Ï´Ù~

http://www.hackerschool.org/HS_Boards/zboard.php?id=QNA_programming&no=146 [º¹»ç]


SEEK_CUR Àº Current ¿¡ ´ëÇÑ ÆÄÀÏ offset ¹èÄ¡¶ó´Â°ÍÀ» ¾Ë°í °è½Ã°ÚÁö¿ä.
ÇØ´ç file descriptor ¿¡ ´ëÇØ open() ¸¸ ¼öÇàÇÏ°í
±× ¿Ü¿¡ ¾Æ¹«·± ¼öÇàÀ» ÇÏÁö ¾Ê¾Ò±â ¶§¹®¿¡ lseek() ÀÇ °á°ú´Â 0 ÀÌ µË´Ï´Ù.

man lseek À» Çغ¸½Ã¸é lseek ÀÇ SEEK_CUR whence ¿¡ ´ëÇØ ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇÕ´Ï´Ù.

       SEEK_CUR
              The offset is set to its current location plus off-
              set bytes.

Áï, ÇöÀç À§Ä¡¿¡ offset ¹ÙÀÌÆ®¸¦ Ç÷¯½ºÇÏ¿© ÇöÀç À§Ä¡ ¿ÀÇÁ¼ÂÀ» °áÁ¤ÇÕ´Ï´Ù.

SEEK_SET °ú ´Ù¸¥Á¡Àº
SEEK_SET Àº offset À¸·Î ÁÖ¾îÁø ¸¸Å­ À̵¿Çϴ°ÍÀÌ°í
SEEK_CUR Àº ÇöÀç À§Ä¡¿¡¼­ offset À» plus ÇÑ ¸¸Å­ À̵¿ÇÕ´Ï´Ù.

open() ½Ã½ºÅÛ ÄÝ ¼öÇà Á÷ÈÄ ¿ÀÇÁ¼ÂÀº Ç×»ó ÃʱâÈ­ µÇ¾î ÀÖ´Â 0 À̸ç,
ÀÌ°ÍÀ» lseek() À» »ç¿ëÇØ °¢ À§Ä¡ ¿ÀÇÁ¼ÂÀ» ¿Å±æ¼ö ÀÖ½À´Ï´Ù.

½Ç ¿¹Á¦ ÀÔ´Ï´Ù.

[indra@indra test]$ cat test.txt
blahblah
[indra@indra test]$ cat a.c
#include <fcntl.h>
#include <stdio.h>

#define FNAME   "test.txt"

int main()
{
    off_t offs;
    char *str = "indra";
    int fd;

    fd = open(FNAME, O_RDWR|O_APPEND);
    write(fd, str, strlen(str));
    offs = lseek(fd, 0, SEEK_CUR);
    printf("SEEK_CUR: %d\n", offs);
    offs = lseek(fd, 3, SEEK_CUR);
    printf("SEEK_CUR: %d\n", offs);
    close(fd);
    return(0);
}
[indra@indra test]$ ./a
SEEK_CUR: 14
SEEK_CUR: 17
[indra@indra test]$ cat test.txt
blahblah
indra[indra@indra test]$

Âü°íÀûÀ¸·Î SEEK_END ¿¡ ´ëÇØ »çÁ·À» ºÙÀÌÀÚ¸é,

open(filename, O_RDWR|O_APPEND); ´Â

open(filename, O_RDWR);
lseek(fd, 0, SEEK_END); ¿Í °°½À´Ï´Ù.

±×¸®°í test code ¿¡¼­ close() °¡ ºüÁ³³×¿ä.
test code ¶ó Çصµ ÆÄÀÏ ´Ù·ç½Ç¶§ ÀÛ¾÷ Á¾·á ÈÄ close() ¸¦ »ç¿ëÇϽô ½À°üÀ»
±â¸£´Â°ÍÀÌ ÁÁ½À´Ï´Ù.

Áñ°ø ÇϽñæ...

>Çб³¿¡¼­ ½Ã½ºÅÛ ÇÁ·Î±×·¡¹ÖÀ̶õ´Â°É ¹è¿ì°íÀִµ¥.. @_@;; Á¦°¡ ¸Ó¸®°¡ ³ª»Û°ÇÁö Àß ¸ð¸£°Ú³»¿ä.
>
>#include<sys/types.h>
>#include<sys/stat.h>
>#include<fcntl.h>
>#include<string.h>
>#include<stdio.h>
>#include<unistd.h>
>
>int main(int argc, char * argv[])
>{
>        off_t offset[2];
>        char * buffer = "that's the way it is";
>        int file = open(argv[1], O_RDWR | O_APPEND);
>        offset[0] = lseek(file, 0, SEEK_CUR);
>        write(file, buffer, strlen(buffer));
>        offset[1] = lseek(file, 0, SEEK_CUR);
>        printf("offset before writing: %ld\n", offset[0]);     //ÆÄÀÏÀ» ¾²±â Àü¿¡ ¿É¼Â °ª
>        printf("offset after writing: %ld", offset[1]);      //ÆÄÀÏÀ» ¾²°í ³­ ÈÄÀÇ ¿É¼Â °ª
>        return 0;
>}
>
>
>Àú´Â
>open(argv[1], O_RDWR | O_APPEND) À¸·Î  ¿­°í ³­ÈÄÀÇ ¿É¼ÂÀÇ °ªÀº ÆÄÀÏÀÇ ³¡À» °¡¸®Å°°í ÀÖ´Â °Í °°¾Æ È®ÀÎ »ï¾Æ ½ÇÇàÀ» Çغ¸¾Ò´õ´Ï
>
>
>[root@localhost practice]# ./a.out test
>offset before writing: 0
>offset after writing: 46
>
>
>ÀÌ·± °á°ú°¡ ³ª¿Ô½À´Ï´Ù.
>O_APPENDÀ» ÀÌ¿ëÇؼ­ openÇÔ¼ö¸¦ ¼öÇàÇصµ lseek(fd, 0, SEEK_CUR)ÀÇ °á°ú°ªÀº ÆÄÀÏÀ» ¾²±âÀü±îÁö´Â 0ÀÎÁö ±Ã±ÝÇÕ´Ï´Ù.

  Hit : 6138     Date : 2003/10/13 06:06



    
3066   [Áú¹®] gcc 2.96ÀÌ ±ò·ÁÀִ°÷¿¡¼­ 2.91¹öÀüÀ¸·Î ÄÄÆÄÀÏÇÒ·Á¸é...     vana94
10/10 3573
3065     [re] [Áú¹®] gcc 2.96ÀÌ ±ò·ÁÀִ°÷¿¡¼­ 2.91¹öÀüÀ¸·Î ÄÄÆÄÀÏÇÒ·Á¸é...     indra
10/11 4141
3064   ÇÁ·Î±×·¥ ¿ë¾î Áú¹®..     wnreh2ehd
10/11 4160
3063     [re] ÇÁ·Î±×·¥ ¿ë¾î Áú¹®..[5]     hkpco
10/11 4069
3062   ºñÁÖ¾ó C++ 6.0 ´Ù¿î¹ÞÀ»¼öÀÖ³ª¿µ?[1]     blue_star
10/11 8143
3061     [re] ºñÁÖ¾ó C++ 6.0 ´Ù¿î¹ÞÀ»¼öÀÖ³ª¿µ?     ¼ÒÀ¯
10/12 10318
3060   º£ÀÌÁ÷Àº ¾î´À ºÐ¾ß¿¡¼­ »ç¿ëÇØ¿ä?     jgminam
10/13 4087
3059   lseek¿¡ °üÇÑ Áú¹®ÀÔ´Ï´Ù~     bsshq7
10/13 4382
    [re] lseek¿¡ °üÇÑ Áú¹®ÀÔ´Ï´Ù~     indra
10/13 6137
3057       ¾Ñ Á¤¸» °¨»çÇÕ´Ï´Ù~     bsshq7
10/13 3612
3056   ÀÌ°Ç Áö±Ý Á¦°¡ ¸· ¿À´Ã ¹è¿î switch ¹®À» ÀÌ¿ëÇÑ °è»ê ÇÁ·Î±×·¥Àε¥ ½ÇÇàÀÌ Àß ¾È´ë´Â±º¿ä Á¶±Ý¸¸ µµ¿ÍÁÖ¼¼¿ä[1]     JoyanG
10/14 3979
3055     [re] ÀÌ°Ç Áö±Ý Á¦°¡ ¸· ¿À´Ã ¹è¿î switch ¹®À» ÀÌ¿ëÇÑ °è»ê ÇÁ·Î±×·¥Àε¥ ½ÇÇàÀÌ Àß ¾È´ë´Â±º¿ä Á¶±Ý¸¸ µµ¿ÍÁÖ¼¼¿ä     indra
10/14 4176
3054       [re] ÀÌ°Ç Áö±Ý Á¦°¡ ¸· ¿À´Ã ¹è¿î switch ¹®À» ÀÌ¿ëÇÑ °è»ê ÇÁ·Î±×·¥Àε¥ ½ÇÇàÀÌ Àß ¾È´ë´Â±º¿ä Á¶±Ý¸¸ µµ¿ÍÁÖ¼¼¿ä[1]     JoyanG
10/15 3983
3053     [re] ÀÌ°Ç Áö±Ý Á¦°¡ ¸· ¿À´Ã ¹è¿î switch ¹®À» ÀÌ¿ëÇÑ °è»ê ÇÁ·Î±×·¥Àε¥ ½ÇÇàÀÌ Àß ¾È´ë´Â±º¿ä Á¶±Ý¸¸ µµ¿ÍÁÖ¼¼¿ä     4irjuno
07/31 3437
3052   fcntl¿¡ °üÇÑ Áú¹®ÀÔ´Ï´Ù.~[3]     bsshq7
10/14 4138
3051     [re] main¿¡ °üÇÑ Áú¹®Àä..[1]     muzen2540
10/15 4309
3050   main¿¡ °üÇÑ Áú¹®Àä..[3]     goodhn
10/14 3411
3049   ºñÁÖ¾ó c++À̶û ±×³É c++À̶û ´Ù¸¥°Ç°¡¿©???[2]     mintsky1024
10/18 4033
3048     [re] ºñÁÖ¾ó c++À̶û ±×³É c++À̶û ´Ù¸¥°Ç°¡¿©???[1]     o-0_o-0
10/19 4079
3047   Åͺ¸C ÄÄÆÄÀÏ·¯ »ç¿ëÇÏ´Â ¹æ¹ý....[1]     slashguns
10/20 5137
[1][2][3][4][5][6][7] 8 [9][10]..[161]

Copyright 1999-2024 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org