如何分叉一个过程

Vla*_*lav 14 fork go

我需要帮助了解如何妖魔化Go中的进程.

package main

import (
   "fmt"
   "os"
)

func start() {
   var procAttr os.ProcAttr 
   procAttr.Files = []*os.File{nil, nil, nil}
   _, err := os.StartProcess("/Path/prog", nil, &procAttr)
   if err != nil {
       fmt.Printf("%v", err)
   }
}


func main () {
   start()
} 
Run Code Online (Sandbox Code Playgroud)

如果在命令行上启动此代码,程序将返回控制权,但仍与cmd连接.关闭cmd会关闭程序.

如何将它与cmd分离?添加:

procAttr.Sys.HideWindow = true
Run Code Online (Sandbox Code Playgroud)

结果出现此错误:"恐慌"错误的内存指针

Vla*_*lav 10

我问'golang-nuts',发现golang有一个链接选项:

go tool 8l -o output.exe -Hwindowsgui input.8
Run Code Online (Sandbox Code Playgroud)