로그를 남기는데 크기가 2G정도가 넘고 있습니다.. 그냥 text 화일인데 자꾸 쌓이다 보니 일케 되버리네요.. -_-+
fwrite()랑 fflush()를 이용해서 화일에 쓰고 있는데... 2G가 넘으니까 더 이상 못 쓰는군요.. 이거 얼케 해야 가능한가요..??
아.. 꼭 화일은 하나이어야 합니다.. 화일 자르란 말은 마세요.. ^^;
os를 모르니 정확한 답변이 힘드네요. 답을 얻고 싶다면 사용하는 환경을 기술하는게 예의 아닌가요.
공통적인 답을 한다면
시스템함수에 64가 붇은게 있습니다. 이것은 os마다 컴파일러의 옵션마다 다 다름니다.
ex) 1. sun os의 경우 spack의 V9옵션을 주면 8바이트의 long을 처리해줍니다 2. linux의 경우는 read64, aio_read64.....등 ioctl(64)차원에서 64bit를 지원합니다.
어라 앞부분만 올라 갔네염.. -_-+
현재 시스템은 리눅스구요 커널은 2.4.9입니다. ulimit 정보를 보면 아래처럼 file size (blocks)이 unlimited이라구 나옵 니다.. 글구 glibc는 2.2.4입니다. exf3를 사용하고 있구요
man 페이지를 뒤져 봤는데 read64나 ioctl64 같은건 찾을 수 없었습니다. 먼가 설치를 더 해야 하나요?
음냐.. 뒤적거리다 보니 fopen64()란 멋쮠 놈이 있군요.. 그냥 fopen()을 이걸루 대체하니 걍 되는군요..
제가 linux 2.4.x의 stdio.h에 있는 부분을 발췌한 것입니다.. 참고가 되겠지요.. 그리고 head file에서 찾는게 가장 빠릅니다.(많기만 한데..,) 메뉴얼은 그다음에 나오지요.
일단 gcc에서 사용할 수 있을겁니다....
###################### ############# ######################
#ifdef __USE_LARGEFILE64 extern FILE *fopen64 (__const char *__restrict __filename, __const char *__restrict __modes) __THROW; extern FILE *freopen64 (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) __THROW; #endif
텍스트 포맷에 대한 자세한 정보
<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]
Re: 2G가 넘는 파일에 쓰기...
os를 모르니 정확한 답변이 힘드네요.
답을 얻고 싶다면 사용하는 환경을 기술하는게 예의 아닌가요.
공통적인 답을 한다면
시스템함수에 64가 붇은게 있습니다.
이것은 os마다 컴파일러의 옵션마다 다 다름니다.
ex) 1. sun os의 경우 spack의 V9옵션을 주면 8바이트의
long을 처리해줍니다
2. linux의 경우는 read64, aio_read64.....등
ioctl(64)차원에서 64bit를 지원합니다.
Re^2: 2G가 넘는 파일에 쓰기...
어라 앞부분만 올라 갔네염.. -_-+
현재 시스템은 리눅스구요 커널은 2.4.9입니다.
ulimit 정보를 보면 아래처럼 file size (blocks)이 unlimited이라구 나옵
니다.. 글구 glibc는 2.2.4입니다. exf3를 사용하고 있구요
man 페이지를 뒤져 봤는데 read64나 ioctl64 같은건 찾을 수 없었습니다.
먼가 설치를 더 해야 하나요?
Re^3: 2G가 넘는 파일에 쓰기...
음냐.. 뒤적거리다 보니 fopen64()란 멋쮠 놈이 있군요..
그냥 fopen()을 이걸루 대체하니 걍 되는군요..
Re^3: 2G가 넘는 파일에 쓰기...
제가 linux 2.4.x의 stdio.h에 있는 부분을 발췌한 것입니다..
참고가 되겠지요..
그리고 head file에서 찾는게 가장 빠릅니다.(많기만 한데..,)
메뉴얼은 그다음에 나오지요.
일단 gcc에서 사용할 수 있을겁니다....
######################
#############
######################
#ifdef __USE_LARGEFILE64
extern FILE *fopen64 (__const char *__restrict __filename,
__const char *__restrict __modes) __THROW;
extern FILE *freopen64 (__const char *__restrict __filename,
__const char *__restrict __modes,
FILE *__restrict __stream) __THROW;
#endif
댓글 달기