任何人都可以向我展示系统中的等价物(" clear");在C?我想在一段时间后清理控制台。提前致谢
编辑:这在Linux中适用于我
import "os/exec"
// Method body
clear := exec.Command("clear")
clear.Stdout = os.Stdout
clear.Run()
答案 0 :(得分:2)
下面的go函数等同于C system()函数。你可以使用它:
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
}
答案 1 :(得分:0)
system()
会调用外部程序 - clear
。
因此Go中的等价物将使用os/exec
标准包来生成相同的程序并等待它完成执行。
答案 2 :(得分:0)
您可以使用stdlib.h
的几行来调用go
中的C
系统函数:
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")
}