ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 대용량 파일
    bin/Linux 2007. 9. 20. 17:40

    리눅스에서는 open() 시스템콜의 flag 파라미터에 O_LARGEFILE 옵션을 같이 주면 2G 이상의 파일도 제어할 수 있습니다.

    그리고, _LARGEFILE64_SOURCE 와 _FILE_OFFSET_BITS=64 는 약간의 차이가 있는데..

    _LARGEFILE64_SOURCE 는 off_t를 32비트로 그대로 사용하는 대신, off64_t 라는 64비트용 변수 타입을 새롭게 정의해서 lseek64()와 같은 함수를 사용할 수 있게 해주고요.

    _FILE_OFFSET_BITS=64 는 off_t 변수 타입 자체를 32비트에서 64비트로 확장하게 됩니다.

    DFLAGS += -D_LARGEFILE64_SOURCE
    DFLAGS += -D_FILE_OFFSET_BITS=64

    둘 다를 쓰면 off_t 는 64비트가 되고, off64_t 변수도사용할 수 있을 것으로 추정.


    #define _LARGEFILE64_SOURCE

    open64()

    creat64(x,(int)(y))

    off64_t lseek64(int fd, off64_t offset, int whence);

    void *mmap2(void *start, size_t length, int prot,
                        int flags, int fd, off_t pgoffset);
    pgoffset  이 4kB units (instead of bytes)

Designed by Tistory.