오늘 발생한 문제인데.

리눅스 32비트 운영체제는 기본적으로 파일을 2기가 까지 사용할수가 있다
그런데 로그파일이 2기가를 넘어가버리는 경우가 있다
간단히 아파치 로그도 관리 안하면 간단히 2기가 넘어간다.

로그를 쌓기 위해서 fprintf 를 사용하고
로그를 바로 저장하기 위해서 fflush 를 사용할때
File size limit exceeded
파일 크기 한계 초과
이런 종류의 에러를  콘솔에 뿌리고 프로그램이 종료해버렸다


이럴 경우의 대책은 여러가지가 있을수 있는데

== 하나 ==
우선은 2기가 한계이니
gcc 로 컴파일옵션중
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
를 선언해준다.

간단히 설명하면 파일 관련 함수를 함수명 변경없이 그대로 64비트처리를 해주게 된다.
그래서 2기가 이상의 파일을 취급할수 있게 해준다.

== 둘 ==
fflush 하면서 시그널을 발생해서 프로그램을 종료시키는것이므로
해당 시그널을 무시하도록 한다
signal(SIGXFSZ, SIG_IGN);
를 통해서 시그널을 무시하게 되면
fflush에서 단순히 오류만 발생할뿐 종료하지는 않게 된다.

참고로 좀 전에 테스트해본결과로는 disk full 일 경우는 별도의 시그널을 발생하지 않고
그냥 fflush에서 에러만 리턴한다
고로 따로 처리해줄 사항은 없다.

아.... 02:49....
지금까지 지지고 볶고 해서 나온 결론이다..
이제 자야지.. ㅠㅠ


크리에이티브 커먼즈 라이센스
Creative Commons License
2008/04/30 02:49 2008/04/30 02:49

Trackback URL : http://simplelife.pe.kr/tc/trackback/538



뚜는 지금.. 사랑해사랑해
아.. 열심히 살자..
남자B형염소자리인천

Categories

전체 (504)
뚜.. 서툰.. (258)
폰 이야기 (13)
나의 길 (85)
읽을거리 (21)
사진갤러리 (124)

Recent Posts

  1. Android Studio 2.2 에서 layout 미리...
  2. mac 에서 ssh 접속시 한글 입력이 안될때.
  3. Android Studio. Zxing 라이브러리 사...
  4. 안드로이드 프로젝트를 SVN 등록시 bin...
  5. 안드로이드에서 android.annotation 를...

Recent Comments

  1. Thanhk you for this informative read... Software Engineering 2018
  2. 오전부터 이것때문에 하루 종일 고생함... choi 2016
  3. 진짜 님이 하루 죙일 겜방에 갇혀서 있... 굳굳 2015
  4. 대박 이걸 어떻게 찾으셨어요? 덕분에 ... 34524 2015
  5. 와 이건 진짜 신의한수 였네요~ 감사합... interlude 2015

Recent Trackbacks

Bookmarks

  1. ATOMOS
  2. c3cc3's Homepage
  3. 봄실
  4. 우중산보... 그 싱그러운 여유

1316

1012

google chart api graph

-30 days

today : 17

Site Stats

TOTAL 869307 HIT
TODAY 17 HIT
YESTERDAY 1306 HIT