문제

fdopen을 사용하여 스트림을 열린 파일과 연결합니다.

내가 언제 close() 파일의 경우 스트림도 자동으로 연결 해제되고 모든 스트림 메모리가 OS로 반환됩니까? 아니면 fdopen'd 파일을 인식하고 특정 방식으로 닫아야 합니까?

-아담

도움이 되었습니까?

해결책

close() 시스템 호출입니다.커널의 파일 설명자는 닫히지만 libc의 FILE 포인터와 리소스는 해제되지 않습니다.대신 FILE 포인터에 fclose()를 사용해야 합니다. 그러면 파일 설명자를 닫는 작업도 처리됩니다.

다른 팁

커널은 이러한 리소스를 관리하며 원할 때(프로세스 종료 이전에) 메모리를 확보할 수 있는 닫기 호출 외에는 이를 제어할 수 없습니다.

/앨런

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top