컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Previous Post Python/파이썬] 텍스트 파일 열기/읽기/출력 예제: Text File Open-Rea...Python/파이썬] 표준 에러 출력으로, 에러 메시지 출력하는 법: STDERRPython/파이썬] 외부 명령어 실행 함수, 외부 프로그램 호출 실행; System, ExecJava/자바] 일시 중지/정지 Pause 시키기; Enter키를 누르면 계속됩니다 메시지Java/자바] 올해가 윤년인지 평년인지 여부 판단; Current Year is Leap...Java/자바] 특정 연도, 윤년 여부 판단 메소드(함수); is Leap Year 사용법Excel/엑셀 VBA] 1, 2, 3, 4분기 구하기 (사분기); Quarter of t...Excel/엑셀 VBA] 12시간제 시간 표현(AM-PM) 오전 오후 출력; 12-hour...울트라에디트] 특정 단어 개수 세기, 파일 속 단어 수 구하기/계산 방법; UltraEdi...로마 숫자 폰트, 로마자 숫자 전각 문자; Roman Numeral Full-Width C...

C, Perl에서, 연 파일을 닫아야 하는 이유는? fclose() close()로

Monday, January 29, 2007
스폰서 링크

파일을 한 번 오픈(open)했으면, 그 파일에 읽기 또는 쓰기 작업을 끝낸 후, fclose() 등의 함수로 (펄은 close()), 그 파일을 닫아 주어야 합니다. 다른 언어에서도 마찬가지입니다.

Q: 파일을 닫지 않으면 어떻게 됩니까?
A: 파일을 닫지 않으면, 프로그램을 종료해도 그 파일의 삭제나 이름 변경이나 이동이 잘 안되는 경우가 생깁니다.

그리고 메모리 속에 그 파일에 대한 정보가 계속 남아 있어서 메모리를 불필요하게 차지할 수도 있습니다. 물론 이런 문제는 컴파일러나 운영체제에 따라 좀 다릅니다. (MS-DOS에서는 시스템 전체가 불안정해지는 경우도 있었습니다.)

Perl(펄) 같은 언어는, 작업 블록을 벗어나면 자동으로 파일이 닫힙니다. 그러나 되도록 close() 함수를 사용하여 명시적으로 닫아주는 것이 안전합니다.

다만 C의 경우, exit() 함수를 사용하여 프로그램을 종료했다면, exit() 함수가 모든 열린 파일들을 자동으로 닫아주기("Before termination, all files are closed...")에 직접 닫을 필요는 없습니다.




더 보기:
C언어 | C/C++ (Visual C++)
더 보기:
Perl | 펄

2 Comments:
At January 30, 2007 at 9:26 PM, Blogger mwultong said...

아, 그런 점도 있었습니다.

도스는 동시에 열 수 있는 파일 개수에 제한이 있었지요.

(∩_∩)

 
At April 1, 2007 at 4:18 PM, Anonymous Anonymous said...

Dos, C 환경에서 파일을 Open만 하고 Close 하지 않을 경우 최대 파일 Open 숫자를 넘기게 되면 더 이상 Open 되지 않고 에러를 발생시키더군요. :)


(새 블로거 버전에서는, 한글 아이디 글자가 깨져서, 다시 올립니다.)

 

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Categories
Previous Posts
Monthly Archives
Top