ÇÁ·Î±×·¡¹Ö

 3206, 7/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 : 6145     Date : 2003/10/13 06:06



    
3086   2Â÷¿ø ¹è¿­À» malloc()À¸·Î ó¸®ÇÏ´Â ¹æ¹ý[2]     powermilk
05/16 6359
3085   [C¾ð¾î] ¿­Ç÷°­ÀÇ C ¸¶Áö¸· ¹®Á¦ Áú¹®ÀÌ¿ä.[4]     ¿µ¿øÇÑ°øºÎ
06/13 6350
3084   0xffffffff°¡ ¹«½¼ ¶æÀΰ¡¿ä??[1]     socks
03/02 6342
3083   C¾ð¾î¸¦ °øºÎÇϴµ¥ °è¼Ó ¿¡·¯°¡¶ß³×¿ä;;[2]     tjdgh4688
02/18 6326
3082     Dev c++ ÄÄÆÄÀÏ·¯ ´Ù¿î ¹Þ±â     TIM_Scutum
01/24 6318
3081   c¾ð¾î óÀ½À¸·Î Çغ¸´Âµ¥.. ¿À·ù°¡ 1°³ ¶ß³×¿ä.. ¹¹°¡ Ʋ¸°°ÅÁÒ?!?? ¤Ð[2]     dpyeong
04/05 6284
3080   ÆíÀÇÁ¡ ¹°Ç° Ãß°¡/»èÁ¦/¼öÁ¤/ÆǸŵî·Ï ¸¸µå´ÂÁßÀε¥.... ÆǸſ¡¼­ ¸·È÷³×¿ä ..[1]     SKTCTO
04/14 6283
3079   [ÀڷᱸÁ¶]±×·¡ÇÁ ÀÓ°è°æ·Î¿¡ °ü·ÃµÈ °³³äÀû Áú¹®     ksbgenius
06/08 6229
3078   [C¾ð¾î] scanfÇÔ¼ö¿Í getsÇÔ¼ö¿¡¼­ \n¹®ÀÚ Áú¹®ÀÌ¿ä.[2]     ¿µ¿øÇÑ°øºÎ
05/25 6217
3077   cmd Áú¹®...[9]     jsw0441
09/07 6215
3076   ÇÔ¼ö ¼±¾ð¹× Á¤ÀÇ °ü·Ã Áú¹®ÀÌ¿ä     ¼þ¾Æ
01/14 6205
3075   C ¾ð¾î¸¦ ¹è¿ì´Âµ¥¿ä..¤Ì¤Ì[3]     nanaya
09/07 6188
3074   VB.NET ÅؽºÆ®¹Ú½º -> ±¸±Û °Ë»ö ÇÑ±Û ±úÁü Çö»ó     yuriyuri92
03/28 6177
3073   ¼ÒÄÏÇÁ·Î±×·¡¹Ö - recvfrom À̳ª sendto ÇÔ¼öÀÇ Æ¯Â¡[2]     chamchi
09/18 6164
3072   ½Ã°£ Ãâ·Â¾îÄÉ Çϳª¿ä?[C¾ð¾î][4]     maby258
06/27 6163
3071   ºÒ¹ýÀÎÁö ¾Ë·ÁÁÖ¼¼¿ä     sdaemin
09/05 6151
3070   scanf? scanf_s?[3]     jjh92kor
06/15 6146
    [re] lseek¿¡ °üÇÑ Áú¹®ÀÔ´Ï´Ù~     indra
10/13 6144
3068   [¾î¼À]eax, ebx ·¹Áö½ºÅÍÀÇ ±Ùº»Àû Â÷ÀÌÁ¡ÀÌ ¹º°¡¿ä??[3]     qudtkadnjs
01/22 6138
3067   [PHP] <¼¼¼Ç À¯Áö> ¿¡ ´ëÇÑ Áú¹®ÀÔ´Ï´Ù..[5]     U_SoRang
05/07 6128
[1][2][3][4][5][6] 7 [8][9][10]..[161]

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