Go 언어에서 exec 패키지를 사용하면 외부 프로세스를 실행하고 제어할 수 있습니다. 이 기능을 사용하면 다른 프로그램을 실행하고 표준 입력, 출력, 오류 스트림을 제어할 수 있습니다. 이를 통해 Go 언어로 작성된 프로그램에서 다른 프로그램을 호출하고 해당 프로그램의 출력을 가져와서 처리할 수 있습니다.
exec 패키지 소개
os/exec
패키지는 외부 명령을 실행하는 기능을 제공합니다. 이 패키지를 사용하여 새로운 프로세스를 시작하고 그 프로세스의 입출력을 조작할 수 있습니다.
외부 프로세스 실행하기
os/exec
패키지를 사용하여 외부 프로세스를 실행하려면 다음과 같이 Command
구조체를 생성하고 Start
메서드를 호출합니다.
package main
import (
"fmt"
"os/exec"
)
func main() {
cmd := exec.Command("ls", "-l")
err := cmd.Start()
if err != nil {
fmt.Println("프로세스 시작 오류:", err)
return
}
}
위의 예제에서 exec.Command
함수를 사용하여 ls -l
명령을 실행하는 새로운 프로세스를 생성합니다. 그런 다음 Start
메서드를 호출하여 이 프로세스를 시작합니다.
외부 프로세스 결과 가져오기
외부 프로세스를 실행하고 나면 해당 프로세스의 결과를 가져와서 처리해야 할 수 있습니다. 이때 Command
구조체의 Output
메서드를 사용합니다.
package main
import (
"fmt"
"os/exec"
)
func main() {
cmd := exec.Command("ls", "-l")
out, err := cmd.Output()
if err != nil {
fmt.Println("프로세스 결과 오류:", err)
return
}
fmt.Println(string(out))
}
위의 예제에서 exec.Command
함수를 사용하여 ls -l
명령을 실행하고, Output
메서드를 사용하여 해당 프로세스의 결과를 가져와서 출력합니다.
정리
Go의 os/exec
패키지를 사용하면 외부 프로세스를 실행하고 해당 프로세스의 입출력을 제어할 수 있습니다. 이를 통해 Go 언어에서 다양한 명령어나 외부 프로그램을 실행하고 그 결과를 활용할 수 있습니다.
위의 예제는 간단한 명령어인 ls -l
를 사용했지만, 복잡한 명령어나 외부 프로그램도 비슷한 방식으로 실행하고 결과를 처리할 수 있습니다.
더 많은 정보는 Go 공식 문서를 참조하세요.