Golang의 exec.Command에서 "종료 상태 1" 오류 디버깅
Golang에서 exec.Command를 실행할 때 "종료 상태 1"이 발생함 " 오류는 자세한 정보가 없으면 실망스러울 수 있습니다. 다행히 근본 원인을 찾아낼 수 있는 해결책이 있습니다.
해결책:
Command 개체의 Stderr 속성을 활용하세요. 이 속성은 명령으로 생성된 표준 오류 출력을 캡처합니다. 다음은 코드 조각의 수정된 버전입니다.
import ( "bytes" "fmt" "os/exec" ) func main() { cmd := exec.Command("find", "/", "-maxdepth", "1", "-exec", "wc", "-c", "{}", "\") var out bytes.Buffer var stderr bytes.Buffer cmd.Stdout = &out cmd.Stderr = &stderr err := cmd.Run() if err != nil { fmt.Println(fmt.Sprint(err) + ": " + stderr.String()) return } fmt.Println("Result: " + out.String()) }
설명:
Stderr 속성을 버퍼(stderr)에 할당하면 명령이 캡처되어 버퍼에 추가됩니다. 0이 아닌 종료 코드로 명령이 종료되면 오류 및 stderr 출력이 인쇄되어 디버깅을 위한 추가 컨텍스트를 제공합니다.
참고:
일부 명령은 stderr 대신 stdout으로 오류를 인쇄하거나 stderr의 메시지와 함께 오류 코드 0을 반환합니다. 따라서 이 솔루션을 적용할 때 각 명령의 동작을 고려해야 합니다.
위 내용은 Golang의 exec.Command에서 '종료 상태 1' 오류를 디버깅하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!