为了账号安全,请及时绑定邮箱和手机立即绑定

系统(“清除”);在 Go 中等效

系统(“清除”);在 Go 中等效

Go
SMILET 2021-10-18 16:41:58
谁能告诉我转到系统中的等效项(“清除”);在 C 中?我想在一段时间后清洁控制台。提前致谢编辑:这在 Linux 中对我有用import "os/exec"// Method bodyclear := exec.Command("clear")clear.Stdout = os.Stdoutclear.Run()
查看完整描述

3 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

下面的 go 函数等价于 C 的 system() 函数。在 go 中,您可以像这样使用:


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

}


查看完整回答
反对 回复 2021-10-18
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

您可以使用以下几行来调用stdlib.h系统函数:goC


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")

}


查看完整回答
反对 回复 2021-10-18
  • 3 回答
  • 0 关注
  • 149 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信