怎么在程序退出的时候做一些事

wangxufire · · 2827 次点击
* 正常退出使用**defer** * 异常退出使用**recover** * 外部关掉程序,可以先捕获这个信号,然后做自己的一些操作
#4
更多评论
stevewang
耶和华是我的牧者,我必不至缺乏。
在main函数的defer里关闭文件就可以。 ``` package main import( "os" "sync" "time" ) var ( myFile *os.File myLock sync.Mutex ) func Open(file string) error { myLock.Lock() defer myLock.Unlock() f, err := os.Open(file) if err != nil { return err } myFile = f return nil } func main() { defer func() { myLock.Lock() defer myLock.Unlock() if myFile != nil { myFile.Close() myFile = nil } }() time.Sleep(time.Second * 3) } ```
#1
楼上正解,defer可以帮你搞定的。
#2