추가 읽기

추가 읽기

물론 파일이 열려 있을 수도 있고 열려 있지 않을 수도 있습니다.

그러나 파일 설명자의 정의는 열린 파일을 참조합니다(맞죠?). (글쎄, 파이프 같은 파일이 아닌 다른 것을 참조하지 않는 한. 하지만 여전히 열려 있습니다.)

나는 "파일 설명자 열기"라는 문구를 여러 번 접했습니다. 나믿다실제로 열린 파일 설명자 외에 다른 유형의 파일 설명자가 없기 때문에 이것은 중복됩니다. 그러나 저는 이것을 확인하고 싶었습니다.

파일 설명자가 "열림" 이외의 다른 상태에 있습니까? (폐쇄되면 없어지는거 아닌가요?)

답변1

프로그램은 다음을 수행합니다.

닫기(0);

표준 입력 파일 설명자는 값을 변경하지 않지만 더 이상 열린 파일 설명을 참조하지 않습니다. 재배포용으로 사용할 수 있습니다. 예를 들어, 이후에 이를 사용하려고 시도하면 동시에 다음과 같은 read()결과가 발생합니다.EBADF여전히 파일 설명자입니다열린 파일 설명을 참조하는 할당된 파일이 아닙니다. 이것은나쁜파일 설명자.

추가 읽기

  • " close()". 오픈 그룹 기본 사양이슈 7. IEEE 1003.1:2008. 그룹을 엽니다. 2018.
  • " read()". 오픈 그룹 기본 사양이슈 7. IEEE 1003.1:2008. 그룹을 엽니다. 2018.

답변2

죄송합니다. 매우 미묘한 차이인 것 같습니다. 다른 사람들이 귀하와 동일한 정확한 정의를 알고 있을 것이라고 가정하지 말고, 모호한 부분이 있으면 문맥을 통해 해결할 수 있는지 확인하십시오. 나는 당신에게 동의하는 답변을 작성할 수 있지만 다음을 인용하여 다른 답변에는 동의하지 않는 것 같습니다.

각 파일 설명자는 정확히 하나의 열린 파일 설명을 참조합니다.

http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_258

따라서 그것이 정확히 다음을 참조하지 않는 경우파일 설명 열기, 그것은 될 수 없습니다파일 설명자. 반품

파일이 닫히면 파일 설명자는 더 이상 존재하지 않습니다., 해당 정수가 더 이상 파일을 참조하지 않기 때문입니다.

http://pubs.opengroup.org/onlinepubs/9699919799/functions/close.html

관련 정보