2014년 6월 16일 월요일

To many open files error



popen()을 통해 top를 실행시켜 Cpu 사용률을 파싱해 오는 간단한 모듈을 만들었는데, 오래 실행을 시킬경우 Too many open files이란 오류가 나면서 제대로 된 동작을 하지 않았다.

ulimit –a에서 open files를 보면 1024 default값으로 지정되어 있는데, ulimit –n 을 통해 늘리면  오류가 좀 더 시간이 흐른 후 나타난다. 하지만 이건 임시 방편일 뿐이고, 실제 문제는 다른 곳에 있었다.
popen()으로 오픈한 fp close()를 통해 닫아주고 있었는데,  man popen을 쳐보니 pclose()가 짝으로 있었다. pclose()로 바꿔주니 잘~된다.

댓글 1개: