go package 학습 -- os / exec

패키지 exec 는 외부 명령 을 실행 하 는 데 사 용 됩 니 다. os. StartProcess 를 패키지 하여 작업 을 더욱 쉽게 합 니 다.
Index 
  • Variables
  • func LookPath(file string) (string, error)
  • type Cmd
  • func Command(name string, arg ...string) *Cmd
  • func (c *Cmd) CombinedOutput() ([]byte, error)
  • func (c *Cmd) Output() ([]byte, error)
  • func (c *Cmd) Run() error
  • func (c *Cmd) Start() error
  • func (c *Cmd) StderrPipe() (io.ReadCloser, error)
  • func (c *Cmd) StdinPipe() (io.WriteCloser, error)
  • func (c *Cmd) StdoutPipe() (io.ReadCloser, error)
  • func (c *Cmd) Wait() error

  • type Error
  • func (e *Error) Error() string

  • type ExitError
  • func (e *ExitError) Error() string


  • Examples 
  • Cmd.Output
  • Cmd.Start
  • Cmd.StdoutPipe
  • Command
  • LookPath

  • Package Files 
    exec.go lp_unix.go
    1. 기본 함수
    func LookPath
    func LookPath(file string) (string, error)
    LookPath 는 바 이 너 리 파일 이름 file 에 따라 PATH 환경 변수 에서 이 바 이 너 리 파일 이 있 는 경로 정 보 를 찾 습 니 다.
    path, err := exec.LookPath("fortune")
    if err != nil {
        log.Fatal("installing fortune is in your future")
    }
    fmt.Printf("fortune is available at %s
    ", path)
    2. type Cmd
    type Cmd struct {
        
        Path string
    
        Args []string
    
        Dir string
    
        Stdin io.Reader
    
        Stdout io.Writer
        Stderr io.Writer
    
        ExtraFiles []*os.File
    
        SysProcAttr *syscall.SysProcAttr
    
        Process *os.Process
    
        ProcessState *os.ProcessState
    }
    Cmd 는 외부 명령 을 대표 합 니 다. 다른 명령 은 준비 되 었 거나 run 에 있 습 니 다.
    func Command
    func Command(name string, arg ...string) *Cmd
    command 는 name 대표 의 명령 을 수행 하 는 Cmd 구 조 를 되 돌려 줍 니 다. Cmd 에는 Path 와 Args 가 설정 되 어 있 고 다른 fields 는 비어 있 습 니 다.예 는 다음 과 같다.
    cmd := exec.Command("tr", "a-z", "A-Z")
    cmd.Stdin = strings.NewReader("some input")
    var out bytes.Buffer
    cmd.Stdout = &out
    err := cmd.Run()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("in all caps: %q
    ", out.String())

    func (*Cmd) CombinedOutput
    func (c *Cmd) CombinedOutput() ([]byte, error)
    명령 c 를 실행 하고 combined output 와 error 를 되 돌려 줍 니 다.
    func (*Cmd) Output
    func (c *Cmd) Output() ([]byte, error)
    명령 c 를 실행 하고 표준 출력 을 되 돌려 줍 니 다. 예 는 다음 과 같 습 니 다.
    out, err := exec.Command("date").Output()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("The date is %s
    ", out)

    func (*Cmd) Run
    func (c *Cmd) Run() error
    Run 은 지정 한 명령 c 를 실행 하고 완 료 를 기다 리 고 있 습 니 다.
    func (*Cmd) Start
    func (c *Cmd) Start() error
    Start 도 지정 한 명령 c 를 실행 하지만 완료 되 기 를 기다 리 지 않 습 니 다.예 는 다음 과 같다.
    cmd := exec.Command("sleep", "5")
    err := cmd.Start()
    if err != nil {
        log.Fatal(err)
    }
    log.Printf("Waiting for command to finish...")
    err = cmd.Wait()
    log.Printf("Command finished with error: %v", err)

    func (*Cmd) Wait
    func (c *Cmd) Wait() error
    Wait 는 명령 c 가 종료 되 기 를 기다 리 고 명령 c 는 Start 방법 으로 실행 되 어야 합 니 다.거기 막 혀 요?

    좋은 웹페이지 즐겨찾기