第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

為什么這個(gè) exec.Command 到不同的打開的 tty 不能正常工作

為什么這個(gè) exec.Command 到不同的打開的 tty 不能正常工作

Go
幕布斯7119047 2022-03-07 22:43:30
任何人都可以幫我弄清楚我在這里做錯(cuò)了什么。我正在嘗試執(zhí)行一個(gè)在不同的 tty 中運(yùn)行的命令(在這種情況下打開 vim),在這種情況下是 /dev/ttys001,它在我的終端的另一個(gè)選項(xiàng)卡中打開。運(yùn)行下面的代碼確實(shí)會在 /dev/ttys001 的窗口中渲染 vim,但是,實(shí)際上從該窗口輸入標(biāo)準(zhǔn)輸入并不能正確注冊。非常感謝任何建議!package mainimport (    "log"    "os"    "os/exec")func main() {    tty, err := os.OpenFile("/dev/ttys001", os.O_RDWR, os.ModePerm)    if err != nil {        log.Fatalln(err)    }    defer tty.Close()    c := exec.Command("vim")    c.Stdin = tty    c.Stdout = tty    c.Stderr = tty    if err := c.Run(); err != nil {        log.Fatalln(err)    }}我還嘗試使用以下代碼設(shè)置命令的 SysProcAttr 字段,但收到錯(cuò)誤:fork/exec /usr/local/bin/vim: inappropriate ioctl for device.procAttr := &syscall.SysProcAttr{    Setpgid:    true,    Ctty:       int(tty.Fd()),    Foreground: true,}c.SysProcAttr = procAttr
查看完整描述

1 回答

?
aluckdog

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊

對于任何感興趣的人,我想出了一個(gè)解決方案,但我最終不得不使用系統(tǒng)調(diào)用而不是 os/exec 包的函數(shù)。


package main


import (

    "log"

    "os"

    "syscall"

    "unsafe"

)


var tty = "/dev/ttys001"

var cmd = "vim\n"


func main() {

    ttyFile, err := os.Open(tty)

    if err != nil {

        log.Fatalln(err)

    }

    defer ttyFile.Close()


    cbs, err := syscall.ByteSliceFromString(cmd)

    if err != nil {

        log.Fatalln(err)

    }


    var eno syscall.Errno

    for _, c := range cbs {

        _, _, eno = syscall.Syscall(syscall.SYS_IOCTL,

            ttyFile.Fd(),

            syscall.TIOCSTI,

            uintptr(unsafe.Pointer(&c)),

        )

        if eno != 0 {

            log.Fatalln(eno)

        }

    }

}


查看完整回答
反對 回復(fù) 2022-03-07
  • 1 回答
  • 0 關(guān)注
  • 174 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號