2015-07-03 62 views
-1

任何人都可以在系統中顯示等價物(「清除」);在C?我想在一段時間後清理控制檯。在此先感謝系統(「清除」);相當於去

編輯:在C爲我工作在Linux中

import "os/exec"

clear := exec.Command("clear")
clear.Stdout = os.Stdout
clear.Run()

+0

這可能會幫助:http://stackoverflow.com/questions/19209425/how-can-i - 清理控制檯與golang在窗口 –

+0

它真的幫助,謝謝你!對於Linux – seomis

+0

的工作方式幾乎相同,因爲編輯是一個解決方案而不是問題,您是否可以像這樣提交它。 – Adeeb

回答

0

system()調用你的情況下,外部程序— clear

因此,Go中的等價物將使用os/exec標準包生成相同的程序並等待它完成其執行。

0

可以使用的C幾行調用stdlib.h系統功能go

package main 

// #include <stdlib.h> 
// 
// void clear() { 
// system("clear"); 
// } 
import "C" 
import (
    "fmt" 
    "time" 
) 

func main() { 
    fmt.Println("Hello") 
    fmt.Println("World") 
    fmt.Println("Golang") 

    time.Sleep(time.Second * 5) 

    C.clear() 

    fmt.Println("Screen is cleared") 
} 
2

轉到下面的功能等同於C系統()函數。在旅途中,你可以使用此類似:

import "system" 

... 
    exitstatus := system.System("clear") 

這裏是Go代碼:

package system 

import (
     "os" 
     "os/exec" 
     "syscall" 
    ) 

func System(cmd string) int { 
    c := exec.Command("sh", "-c", cmd) 
    c.Stdin = os.Stdin 
    c.Stdout = os.Stdout 
    c.Stderr = os.Stderr 
    err := c.Run() 

    if err == nil { 
     return 0 
    } 

    // Figure out the exit code 
    if ws, ok := c.ProcessState.Sys().(syscall.WaitStatus); ok { 
     if ws.Exited() { 
      return ws.ExitStatus() 
     } 

     if ws.Signaled() { 
      return -int(ws.Signal()) 
     } 
    } 

    return -1 
}