http.Post()를 호출할 때 Go 프로그램에서 중단이 발생합니다. C 공유 라이브러리로 빌드되는 동안(-buildmode=c-shared) 그러나 표준 실행 가능 바이너리(GOOS=linux GOARCH=amd64 ./example)는 올바른 값을 반환합니다.
이 문제는 C가 실행될 때 Go 런타임이 로드되기 때문에 발생합니다. 공유 라이브러리는 상위 프로세스에 의해 로드됩니다. 그러나 포크된 하위 프로세스에서 라이브러리를 사용하면 Go 런타임이 올바르게 로드되지 않아 예측할 수 없는 동작과 호출 중단이 발생합니다.
해결책에는 하위 항목 내에서 Go 런타임 로드를 제어하는 것이 포함됩니다. 프로세스. 이렇게 하려면:
하위 프로세스에 Go 런타임을 명시적으로 로드하면 런타임이 올바르게 초기화되고 네트워크 호출이 성공적으로 이루어질 수 있습니다.
위 내용은 ## 내 Go C 공유 라이브러리가 분기된 하위 프로세스에서 네트워크 호출에 응답하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!