C에서 fopen으로 1기가 정도 되는 파일을 열지 못하는데요. 어떻게 하면 열 수 있을까요?
대용량 파일 문제인 것이 확실한지 확인해보셨나요?
32bit 시스템에서 2^31 바이트까지는 정상적으로 돼야 한다고 알고 있습니다.
http://www.suse.de/~aj/linux_lfs.htmlhttp://www.ece.utexas.edu/~luo/linux_lfs.html
2기가 이상의 파일은 어떻게 여는 것인가요?
fopen64를 이용하세요..
그러면 2기가 이상의 파일이라도 handling 하실 수 있을 겁니다.
FILE * fopen( const char *path, const char *mode ) { retrun fopen64( path, mode ); }
위 코드를 library로 만드신 후에 LD_PRELOAD를 이용해서 읽으시면 기존 fopen으로 되어 있는 코드도 문제 없이 사용하실 수 있으실 겁니다.
http://www.ece.utexas.edu/~luo/linux_lfs.html 를 참고하시고,
일반 fopen을 사용하시더라도
-D_FILE_OFFSET_BITS=64
옵션을 gcc에 넘겨 주시면 fopen 이 fopen64로 바뀌어 들어갑니다.
또, fopen64를 명시적으로 사용하시려면 header에 fopen64를 추가하여야하므로
-D_LARGEFILE64_SOURCE=1
을 gcc에 넘겨주시면 됩니다.
---http://coolengineer.com
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
대용량 파일 문제인 것이 확실한지 확인해보셨나요?32bit 시스템
대용량 파일 문제인 것이 확실한지 확인해보셨나요?
32bit 시스템에서 2^31 바이트까지는 정상적으로 돼야 한다고 알고 있습니다.
http://www.suse.de/~aj/linux_lfs.html
http://www.ece.utexas.edu/~luo/linux_lfs.html
그렇다면
2기가 이상의 파일은 어떻게 여는 것인가요?
Re: 그렇다면
fopen64를 이용하세요..
그러면 2기가 이상의 파일이라도 handling 하실 수 있을 겁니다.
위 코드를 library로 만드신 후에 LD_PRELOAD를 이용해서
읽으시면 기존 fopen으로 되어 있는 코드도 문제 없이 사용하실 수 있으실 겁니다.
http://www.ece.utexas.edu/~luo/linux_lfs
http://www.ece.utexas.edu/~luo/linux_lfs.html
를 참고하시고,
일반 fopen을 사용하시더라도
-D_FILE_OFFSET_BITS=64
옵션을 gcc에 넘겨 주시면 fopen 이 fopen64로 바뀌어 들어갑니다.
또, fopen64를 명시적으로 사용하시려면 header에 fopen64를 추가하여야하므로
-D_LARGEFILE64_SOURCE=1
을 gcc에 넘겨주시면 됩니다.
---
http://coolengineer.com
댓글 달기