我需要用来defer
释放使用C
库手动创建的分配,但os.Exit
在某些时候我还需要处于非0状态。棘手的部分是os.Exit
跳过任何延迟的指令:
package main
import "fmt"
import "os"
func main() {
// `defer`s will _not_ be run when using `os.Exit`, so
// this `fmt.Println` will never be called.
defer fmt.Println("!")
// sometimes ones might use defer to do critical operations
// like close a database, remove a lock or free memory
// Exit with status code.
os.Exit(3)
}
游乐场:从https://gobyexample.com/exit盗取的http://play.golang.org/p/CDiAh9SXRM
那么如何退出执行已声明的defer
调用的go程序呢?有其他选择os.Exit
吗?