> 백엔드 개발 > Golang > Go에서 SyscallConn()은 언제 일반 *os.File에 유용합니까?

Go에서 SyscallConn()은 언제 일반 *os.File에 유용합니까?

王林
풀어 주다: 2024-02-05 23:30:03
앞으로
848명이 탐색했습니다.

在 Go 中,什么时候 SyscallConn() 对常规 *os.File 有用?

질문 내용

SyscallConn() (在 *os.File에 정의된 함수를 사용하는 일부 Go 코드(https://github.com/KarpelesLab/reflink)를 읽고 있습니다.

으아악

이 예에서는 d.Fd()s.Fd()를 직접 사용하는 대신 이러한 Control() 함수를 사용합니다. 장점이 있나요? 보다 일반적으로 func func (*os.File) SyscallConn() (syscall.RawConn, error)는 무엇에 사용됩니까? Control() 函数而不是直接使用 d.Fd()s.Fd() 是否有任何优势?更一般地说, func func (*os.File) SyscallConn() (syscall.RawConn, error) 有什么用?


正确答案


file.Fd() 返回一个文件描述符,并且它使文件描述符以阻塞模式运行(占用一个线程以进行阻塞操作)。 SyscallConn

정답

file.Fd()는 파일 설명자를 반환하고 파일 설명자가 차단 모드에서 실행되도록 합니다(스레드 점유) 차단 작업용). SyscallConn은 이를 수행하지 않습니다. 실제로 파일 설명자를 차단하지 않고 가져오기 위해 특별히 만들어졌습니다. 자세한 내용은 🎜이 질문🎜을 참조하세요. 🎜

위 내용은 Go에서 SyscallConn()은 언제 일반 *os.File에 유용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿