Disk Full 과 fopen 의 연관관계?
글쓴이: befoed / 작성시간: 화, 2005/03/29 - 6:28오후
이번에 삽질 하다가 발견한건데 , 리눅스에 이런 제한이 있는지
혹은 다른 문제 인지 확인이 되지 않아 여러 고수님들에게
도움을 요청 합니다.
간단히 말씀 드리면 Disk가 100% 사용중인 상태에서 ( "/" 파티션은 아니고 , "/home" 파티션에 Wirte할 영역이 전혀 없습니다. )
fopen 및 fputs 를 이용하여 계속 HDD에 정보를 write 하는 시험 입니다.
그런데 Disk가 100%라고 할지라도 fopen및 fputs가 정상적으로 실행이 되는것 처럼 보이더군요. ( 실제 기록은 안되더라도 return 값은 정상 ). 그러다가 어느 순간부터 fopen 이 되지 않습니다. 별도의 테스트 프로그램을 만들어 확인을 해봤더니
fopen 이 606번째 되는 시점 부터 fopen이 되지 않더군요.
몇 Byte를 Write 하는지는 전혀 상관이 없지만 , 몇번을 확인해도 606번째 부터는 fopen이 되지 않습니다.
혹시 606번째라는 무슨 상관 관계가 있나요?
사용하고 있는 시스템은 RedHat 7.3 입니다.
Forums:
지금 다시 해보니 fputs는 전혀 상관이 없네요..fopen 하고
지금 다시 해보니 fputs는 전혀 상관이 없네요..
fopen 하고 fclose 만 해도 동일한 현상이 나타나네요..
싸인문구;;남들은 멋있게 쓰던데..난 멀해야 할까..
제 생각엔 open 되고 fputs 가 되는건 버퍼링 한계까지 버퍼링이
제 생각엔 open 되고 fputs 가 되는건 버퍼링 한계까지 버퍼링이 되기
때문에 성공적으로 write한다고 리턴은 되는거 같네요,
정말 0 프로의 기억공간이라면 inode 를 추가할수가 없을 지경이라면
메모리 공간에 만들어 지기는 하는데 그것이 실제 디스크에 기록되지
못해서 다시 open 이 안되는게 아닐까.. ^^;
^^ be cool ~
http://fromdj.pe.kr
자문 자답 :헉 .. 아무래도 삽질 한듯 합니다. ㅜㅜ테스트 한
자문 자답 :
헉 .. 아무래도 삽질 한듯 합니다. ㅜㅜ
테스트 한 프로그램이
파일명을 1번부터 +1씩 증가하면서 파일을 계속 만드는 것을 했었습니다.
그런데 파일이 이미 있는 것들은 open시에 에러가 나지 않고 ,
새롭게 파일을 만들려고 할때 에러가 발생 하는 군요.
처음 테스트시에 df -k로 확인해본 결과가 아래와 같았고 , 또한 File은 만들어 지지만 내용을 적을수 없기에 파일 생성이 안된다는것에 대하여는 생각을 안했던 미스 인듯 합니다.
df -k
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/sda3 10080520 5248448 4320004 55% /
/dev/sda1 1004024 21368 931652 3% /boot
/dev/sda6 259561216 25756092 220620180 11% /export
/dev/sda2 10080520 10080520 0 100% /home
none 1032828 0 1032828 0% /dev/shm
결론적으로 보자면
만약 Available이 0 이라면
어느정도까지는 파일 생성은 가능 하지만 ( 어느정도까지인지 또한 왜 가능한지 혹시 아시는분 있으면 알려 주시면 감사하겠습니다. ) 파일의 내용은 더이상 들어 갈 수 없다.
이네요..
틀린점 있으면 지적 부탁 드리겠습니다.
여러 고수님들께 감사 드립니다.
싸인문구;;남들은 멋있게 쓰던데..난 멀해야 할까..
댓글 달기