간단한 fd에 관한 질문
5:25 경에, 모든 fd들은 프로그램이 종료되면 자동으로 닫아준다고 말씀하셨는데, 그럼 지금까지 프로그래밍 해오면서 작성해준 close(fd); 는 그렇게 필수적인 것은 아니라는 건가요?
답변 1
1
네. 맞습니다. 프로그램이 종료되면 운영체제가 그 프로그램이 열고 있던 모든 리소스(fd포함)을 닫아줍니다. 따라서 프로그램이 끝나는 시점의 close(fd)는 필수적인 것은 아니었다고 말할 수 있습니다.
하지만, 꼭 그렇지만은 않습니다. 할당 받은 리소스는 사용을 마친 후 리소스 해제 처리를 하는 것이 정석입니다. 또, 이렇게 연습이 되어 있어야만 합니다. 강좌에서는 아주 짧은 예제 코드만 다루게 되지만, 실제 업무에서는 이보다 훨씬 큰 코드가 하나의 프로그램을 이루고 있습니다. 어떤 리소스를 할당받고 해제하는 것을 칼같이 정확하게 프로그래밍을 해놓지 않는다면, 이 프로세스는 언젠가는 문제가 생기게 됩니다. 게다가 보통은 이런 문제들이 해결하기도 어렵습니다. 문제가 단기간에 재현되지도 않고, 재현된다 하더라도 누가 어디에서 잘못한지 판단하기가 어려운 경우가 많습니다.
리소스를 할당받고 해제처리를 제대로 하지 못하는 것은 누구나 할 수 있는 실수 입니다. 항상 신경쓴다 하면서도 자주 하는 실수 입니다. 아무리 운영체제가 알아서 해제를 해준다 하더라도, 직접 해제처리 하는 것이 숙달되어 있는 것이 좋습니다.
좋은 질문 감사합니다~:D
inotify 객체에 등록된 watch descriptor 해제 관련 질문
0
37
2
select API 실습 코드 질문
0
40
2
wsl에서 fcntl사용
0
72
2
inotify_event 구조체 질문 [파일 이벤트 - 라이브 프로그래밍]에서...
0
180
2
./stat 파일이름
0
273
2
fopen r, r+모드 차이
0
460
2
강의를 모두 수강하고 스스로 구현하면 좋을 과제나 프로젝트 주제가 있을까요?
0
326
1
pthread 질문
0
419
2
I/O Multiplexing(select) 질문
0
325
1
inotify.c. ret 질문
0
302
1
inotify.c 질의합니다.
1
317
1
child process
0
715
1
read/blocking
0
564
1
flock
0
565
1
system call
0
598
1
pthread_create() 함수 이용했을 때, thread가 두번 호출되는 것 처럼 나타납니다. 왜 그런것인가요?
0
487
1
fork() 함수 사용시 결과 관련 질문
0
371
1
exec 관련 궁금한 사항
0
450
2
파일 디스크립터와 FILE 구조체에 대한 질문
0
552
1
buf 선언에 따른 read() fail 문제
0
251
2
파일 이벤트 - 라이브 프로그래밍 에서 캐스팅 질문
0
254
1
2번 multi thread 방법 질문
0
242
1
segmentation fault 발생 관련 문의
1
842
1
라이브 코딩 실습 코드
0
235
1





