2
위해 나는 것 다음 Golang 코드는 무기한액세스 FD (3) 별표 EAGI
eagi := os.NewFile(uintptr(3), "/dev/stdeagi")
data := bufio.NewReaderSize(eagi, 64*1024)
...
data.WriteTo(conn) // Blocks indefinitely!
심지어 오류 던져하지 않는 것
차단되어야한다 - 나의 추측이다, 내가 접근하고있어 FD가 잘못되었습니다. 제 목적은 Asterisk EAGI에 대한 프로세스 'FD 3에 액세스하는 것입니다. 나는 또한 대체 경로 fmt.Sprintf("/proc/%d/fd/3", os.Getpid())
을 읽으려고했지만, 이것은 같은 방식으로 행동하는 것으로 보인다. 내가 도대체 뭘 잘못하고있는 겁니까?
당신은 파일 기술자가 3인가 확실합니까? 파일을 열어 보셨습니까? – JimB
@JimB Docker 컨테이너 안에'ls/proc//fd'을 실행하면'3'이 보입니다. 'cat '하려고 할 때'Permission Denied'가 나타납니다 –
Angad
@Flimzy 저는 https://golang.org/pkg/os/#pkg-variables를 영감으로 사용했습니다. Go가 사용하는 것 같습니다. – Angad