fdopen()이 메모리 누수를 일으킬 수 있나요?
-
09-06-2019 - |
문제
fdopen을 사용하여 스트림을 열린 파일과 연결합니다.
내가 언제 close()
파일의 경우 스트림도 자동으로 연결 해제되고 모든 스트림 메모리가 OS로 반환됩니까? 아니면 fdopen'd 파일을 인식하고 특정 방식으로 닫아야 합니까?
-아담
해결책
close()
시스템 호출입니다.커널의 파일 설명자는 닫히지만 libc의 FILE 포인터와 리소스는 해제되지 않습니다.대신 FILE 포인터에 fclose()를 사용해야 합니다. 그러면 파일 설명자를 닫는 작업도 처리됩니다.
다른 팁
커널은 이러한 리소스를 관리하며 원할 때(프로세스 종료 이전에) 메모리를 확보할 수 있는 닫기 호출 외에는 이를 제어할 수 없습니다.
/앨런
제휴하지 않습니다 StackOverflow