ufdhold 및 ufdrele 커널 서비스
용도
파일 설명자 참조 횟수를 늘리거나 줄입니다.
구문
int ufdhold( fd)
int fd;
int fd;
int ufdrele(fd)
int fd;매개변수
| 항목 | 설명 |
|---|---|
| fd | 파일 설명자를 식별합니다. |
설명
주목: 다음 호출이 매우 중요합니다. ufdhold 그리고 우프드렐레 커널 서비스가 균형을 이루고 있습니다. 파일 디스크립터가 해제된 횟수보다 더 많이 유지되는 경우 닫다 설명자의 서브루틴이 완료되지 않습니다. 프로세스가 중단되어 종료될 수 없습니다. 설명자가 보유된 것보다 더 많이 해제되면 시스템 패닉이 발생합니다.
그만큼 ufdhold 그리고 우프드렐레 커널 서비스는 파일 설명자 참조 카운트를 늘리거나 줄입니다. 이러한 커널 서비스는 함께 파일 설명자 참조 횟수를 유지합니다. 그만큼 ufdhold 커널 서비스는 개수를 증가시킵니다. 그만큼 우프드렐레 커널 서비스는 개수를 감소시킵니다.
이러한 서브루틴은 자체 파일 설명자 기반 시스템 호출을 제공하는 커널 확장에 대해 지원됩니다. 이 지원은 다음과의 동기화에 필요합니다. 닫다 서브루틴.
스레드가 파일 설명자 기반 시스템 호출을 실행할 때 논리 파일 시스템(LFS)이 이를 인식해야 합니다. LFS는 파일 설명자의 개수를 사용하여 현재 특정 파일 설명자를 사용하는 시스템 호출 수를 모니터링합니다. 개수를 정확하게 유지하려면 파일 설명자를 사용하는 모든 스레드는 작업을 수행하기 전에 개수를 증가시키고 해당 시스템 호출에 대해 파일 설명자를 사용하는 모든 활동이 완료되면 개수를 줄여야 합니다.
실행 환경
이러한 커널 서비스는 다음에서 호출할 수 있습니다. 프로세스 환경 오직.
리턴 값
| 항목 | 설명 |
|---|---|
| 0 | 성공적인 완료를 나타냅니다. |
| EBADF | 다음을 나타냅니다. fd 매개변수는 열린 파일에 대한 파일 설명자가 아닙니다. |