草庐IT

clean_exit

全部标签

go - 你如何将 syscall.Errno 传递给 os.Exit?

假设我尝试获取锁,但失败了,然后想退出程序。err=syscall.Flock(lockfd,syscall.LOCK_EX|syscall.LOCK_NB)iferr==syscall.EAGAIN{os.Exit(err)}问题是您需要将一个整数传递给os.Exit。我试过:os.Exit(int(err))os.Exit(syscall.EAGAIN)//Compilesfine,butthecastfails..noideawhyeerr,_:=err.(*syscall.Errno);os.Exit(int(*eerr))//panicsreflect.ValueOf(err

go - 为什么命令 "go clean -n -r -i github.com/ethereum/go-ethereum..."不起作用?

我是一步一步做的:Git克隆go-ethereum项目到我的本地PC。它位于D:\GOPATH\src\github.com\ethereum\go-ethereum。这是源代码去以太坊注意:操作系统为windows7,Go已经安装。并且GOPATHenv已经设置为“D:\GOPATH”cd/dD:\GOPATH\src\github.com\ethereum\go-ethereum。然后执行“去安装”。在D:\GOPATH\bin下生成了一些exe文件目录下生成了很多后缀为.a的pkg文件D:\GOPATH\pkg目录。一切似乎都没有问题。执行“goclean-n-r-igithub

go - 滑行更新失败 -> 无法将依赖项导出到 vendor 目录 : Error moving files: exit status 1. 输出 : Access is denied. 0 目录已移动

我关注了tutorialforglideusage.我执行了glideinit并成功创建了glide.yaml。发布,当我执行glideupdate时,出现以下错误。知道如何解决这个问题吗?我使用gogetgithub.com/Masterminds/glide安装了glide注意:我在Windows上通过GitBash终端执行这些操作。(不确定,但如果需要GOPATH值,则为/c/Users/aagoyal/eclipse-workspace-oxygen/GoPath/:/d/Edge_OSS/code/microservice/NE3SProto/。我的代码位于/d/DAAAS/

http.ListenAndServe : Close when program exits

我想编写简单的RESTAPI应用程序。我编写了处理HTTP请求的代码:packagemainimport("fmt""log""movies/dao""net/http""github.com/gorilla/mux")vard=dao.MoviesDAO{}//AllMoviesEndPointshowallmoviesfuncAllMoviesEndPoint(whttp.ResponseWriter,r*http.Request){fmt.Fprintln(w,"notimplementedyet")}funcinit(){d.Server="127.0.0.1"d.Databa

转到/pkg/工具/linux_amd64/链接 : running gcc failed: exit status 1/usr/bin/ld: cannot find -lgdal

我正在尝试在我的源代码上运行gobuild。go/pkg/tool/linux_amd64/link:runninggccfailed:exitstatus1/usr/bin/ld:cannotfind-lgdalcollect2:error:ldreturned1exitstatus我的LD_LIBRARY_PATH变量包含/home/fzd/project/lib64,libgdal.so文件目录的路径。我的PKG_CONFIG_PATH包含指向具有以下内容的.pc文件目录的路径:prefix=/home/fzd/projectexec_prefix=${prefix}libdir

http - 是什么导致我的 HTTP 服务器失败并返回 "exit status -1073741819"?

作为练习,我创建了一个生成随机游戏机制的小型HTTP服务器,类似于thisone.我是在Windows7(32位)系统上编写的,它可以完美运行。但是,当我在家用计算机Windows7(64位)上运行它时,它总是失败并显示相同的消息:exitstatus-1073741819。我还没有在网上找到任何引用该状态代码的内容,所以我不知道它有多重要。这是服务器的代码,删节了冗余:packagemainimport("fmt""math/rand""time""net/http""html/template")//InfoaboutagamemechanictypeMechanicInfostr

go - `Exit(1)` 到哪里,哪里返回错误?

处理发生在程序层深处的错误的惯用方法是什么?如果我在包的深处某处有这样的片段:file,err:=os.Open(path)iferr!=nil{os.Exit(1)//orreturnerrors.New("Thepathisinvalid.")}我是否应该返回一个错误并可能将它拖过几层if{}else{}block直到main和Exit在main或Exit立即?使用立即Exit代码看起来更清晰、更易读。但有时很难测试。使用返回和检查代码看起来更糟(在我看来),但它更容易测试并达到100%的覆盖率。还有一个问题...如果我正在编写一个包并且它没有main函数,我应该将Exit留给“用

go - dep ensure 失败并显示 Solving failure : failed to clean up git repository .

我正在尝试导入go存储库https://github.com/cloudfoundry/cli当我在go程序中添加import语句时,我的depinit或depensure命令失败。我不确定我无法获得repo的原因是什么。我可以在go/src中执行gitclone,它会提示本地版本可能不一致。不确定这个特定的repo发生了什么。bash-3.2$depensureSolvingfailure:failedtocleanupgitrepositoryat/Users/rjain/go/pkg/dep/sources/https---github.com-cloudfoundry-cli-

testing - 去测试 : clean up after panic

假设我为我的测试设置了一个带有数据库的Docker容器,我在testing.TestMain中这样做了因为我希望这一次在全局范围内完成。我在此testing.Main()中编写了一个defer语句来执行清理(即删除DB容器)。现在,假设出了点问题,我的测试崩溃了。Thisissue告诉我我无法编写自定义recover代码来确保删除容器。这是真的:testing.M.Run()执行它自己的recover()调用,看起来没有办法覆盖它的行为。问题是:我应该怎么做才能确保无论如何执行我的清理代码? 最佳答案 如您链接到的问题中所述:The

docker - 转到 Docker 容器失败 : "Exit Code 1"

我正在尝试在Docker容器中运行我的Go应用程序,但它失败并给出错误退出代码1。该应用程序在我的本地机器上运行良好,但在Docker中运行不佳。下面是我的Dockerfile。FROMgolang:1.8asgoimageRUNgoget-ugithub.com/golang/dep/cmd/depCOPY.src/github.com/aditmayapada/tryoutWORKDIRsrc/github.com/aditmayapada/tryoutENVPORT9090RUNdepensureRUNCGO_ENABLED=0GOOS=linuxGOARCH=amd64gobu