草庐IT

os模块

全部标签

logging - 在 log.SetOutput(ioutil.Discard) 之后延迟 log.SetOutput(os.Stdout)

在go-nsq库(https://github.com/bitly/go-nsq/blob/master/writer_test.go#L38)中,我找到了以下代码:log.SetOutput(ioutil.Discard)deferlog.SetOutput(os.Stdout)为什么作者在丢弃日志后将日志记录延迟到标准输出? 最佳答案 log.SetOutput(ioutil.Discard)语句更改标准记录器输出目的地。deferlog.SetOutput(os.Stdout)语句尝试在函数结束时将输出目标重置回其初始值。但是

google-app-engine - 使用 Go 中的模块在 App Engine 上保持与 APNs 的连接打开

我正在尝试为我编写的留言板应用程序实现iOS推送通知(例如新消息通知等),但不知道从哪里开始。关于保持对来自AppEngine的APN的持久TLS连接开放以及指向有关已弃用后端的文章的链接,许多当前文档似乎已经过时。我正在使用Go运行时,但总是卡住。例如,创建与APNs的套接字连接需要一个只能从HTTP请求中获取的上下文,但在架构上这似乎没有多大意义,因为理想情况下套接字无论如何都保持打开状态。是否有任何我遗漏的更清晰的指南,或者现在设置一个单独的VPS或计算实例来处理它是更好的主意吗? 最佳答案 我对Go不是很熟悉,但如果你不知道

go - os.OpenFile 权限问题在测试中

我目前遇到了os.OpenFile的问题。当我运行我的go测试时,它只是给我“权限被拒绝”。typelogstruct{MessagestringSourcestringTimestamptime.TimeErrorCodeErrorCode}typeErrorCodeintconst(InfoErrorCode=1+iotaWarningError)func(errorCodeErrorCode)String()string{switcherrorCode{caseInfo:return"Info"caseWarning:return"Warning"caseError:return

go - 单独模块中的命令

查看go工具源代码并阅读此SO答案(以及链接的文章)后:WhatisasensiblewaytolayoutaGoproject(将二进制文件与应用程序分开)例如以下设置:myapp/cmd/first/main.gosecond/main.gothird/main.gootherpackage/我很好奇您将如何实现/构建/调试这样的解决方案?我是否应该在根目录中有一个main.go,然后根据用户运行的命令以某种方式在cmd目录中执行不同的包?或者我如何在根目录中没有“主”包的情况下构建这个多命令包? 最佳答案 您不需要根包中的ma

go - 无法在 Golang os.Arg 变量中使用反斜杠 `\`

我在Golang中制作了一个程序,我试图在启动我的程序时使用一个文件作为第一个参数。例如:./goprogram.exeC:\Acidic\image.png当我的程序尝试使用应该链接到image.png文件的os.Arg[1]变量时,它返回没有任何反斜杠的字符串(C:Acidicimage.png)。如何在不转义字符的情况下使用参数的整个字符串?我举了一个小例子:packagemainimport("fmt""os")funcmain(){iflen(os.Args)>=2{fmt.Println(os.Args[1])}}我运行gorunargs.goC:\Users\image.

golang 网络模块(LookupSRV)

我是golang的新手,我对python有一些经验,但据说还没有达到这个水平。我正在创建一个名为“digall”的应用程序,使用户在检查域名时可以轻松查看事件的dns记录。在我使用的应用程序中,LookupSRV,我似乎遇到了一些问题:funcsrvRecord(querystring){service:="sipfederationtls"protocol:="tcp"fmt.Printf("\n[+]SRVRecord(s)\n")//srvMap:=["sipfederationtls","autodiscover","VLMCS"]cname,addresses,err:=ne

file - 如何在 golang 的 os.FileMode 中设置 gid 和 uid?

我想为我们的golang应用程序创建的文件设置uid和gid。看起来正确的地方是使用os.FileMode.我正在寻找一步设置权限以及uid和gid的示例。设置权限看起来非常简单:os.FileMode(hdr.Mode&0777)但我不确定如何在FileMode上也设置uid/gid。 最佳答案 不知道一步是什么意思,我用下面的方法设置uid和gidfuncChown(路径字符串,uidint,gidint)https://golang.org/pkg/syscall/#Chown 关

go - 通过 golang os/exec 使用 sftp << INPUT

我想做的是在golang中通过SFTP从我的服务器导出文件。这是麻烦的代码cmd=exec.Command("sftp","login@sftp.com",`INPUTcd/some/pathputfile.gzquitINPUT`)cmd.Stderr=&stderrerr=cmd.Run()iferr!=nil{fmt.Println(stderr.String())os.Exit(1)}fmt.Println("done")它会完成但不会导入file.gz。 最佳答案 我终于找到了解决方案。cmd=exec.Command("

go - os : process already finished when sending syscall. SIGCONT(可能是错误?)

当执行进程并使用以下方式向其发送信号时:Process.Signal我注意到在发送第二个信号syscall.SIGCONT之后我得到了一个:os:processalreadyfinished但如果使用syscall.Kill一切都按预期工作。为了演示目的,我创建了这个简单的示例:packagemainimport("fmt""os""os/exec""syscall""time")funcmain(){exit:=make(chanerror,1)gorun(exit)for{select{case所以基本上如果使用:cmd.Process.Signal(syscall.SIGCONT

google-app-engine - 在应用引擎模块之间共享数据

我正在尝试使用appengine数据存储在appengine模块之间共享key。我在一个模块中编写key,我可以从该模块中读取它。尝试从第二个模块读取它不起作用,我没有得到这样的实体响应。在模块之间共享key的最佳方式是什么?我可以为此使用数据存储吗?根据我在文档数据存储中阅读的内容,服务之间共享。但它似乎对我不起作用。 最佳答案 您可能会遇到最终一致性问题。数据存储是分布式的,因此一个服务可能会命中数据的一致版本,而另一个服务(模块)会命中另一个过时的版本。数据存储绝对是一种在模块之间共享数据的方式,因此它可能是一个一致性问题,除