草庐IT

l-real-time-linux

全部标签

go - 将整个函数放在一个带有 time.Sleep 的无限循环中还是循环一个 go routine 效率更高?

我有一个函数,我想每20秒左右轮询一次,现在它在go例程中被调用,如下所示:转到StartTradeBot()然后在函数体中:funcStartTradeBot(){for{//Allthestufftodotime.Sleep(20*time.Second)}}这样效率更高吗?或者我应该像这样包装我的goroutinefor{goStartTradeBot()time.Sleep(20*time.Second)} 最佳答案 关于如何做到这一点,至少有三种变体,每种都有不同的功能。因为间隔是20秒,所以性能上的差异可以忽略不计。选择

linux - Go Get OAuth2 在 Linux Mint 上给我奇怪的错误

尝试跟随https://jacobmartins.com/2016/02/29/getting-started-with-oauth2-in-go/当我运行gogetgolang.org/x/oauth2时,没有任何异常出现,但是当我尝试使用gorunmain.go运行代码时我在终端中得到以下信息:#google.golang.org/grpc/credentials../../../google.golang.org/grpc/credentials/credentials_util_pre_go17.go:58:32:error:referencetoundefinedfieldo

parsing - 更改 time.Time 时区而不重新解析

我正在处理使用错误时区解析的time.Time对象。它们内部有一个UTCtz,但原始数据来自旧版MySQL数据库,该数据库在内部存储带有欧洲/巴黎时区的日期时间。我想在不重新解析的情况下更改时间的内部时区。我尝试了time.In()函数,但它没有解决我的用例,因为它返回另一个时区的同一时间。我的最终解决方案是使用https://golang.org/pkg/time/#ParseInLocation使用正确的位置从原始值重新创建日期。但是,如果可以避免这种情况,那就更好了。有什么想法吗?谢谢。 最佳答案 你能为他们添加固定offes

go - 为什么这两个 time.Time 实例对于 UTC 是相同的而对于另一个位置是不同的?

我希望这两个time.Time实例是相同的。但是,我不确定为什么我得到的比较结果是错误的。packagemainimport("fmt""time")funcmain(){t:=int64(1497029400000)locYangon,_:=time.LoadLocation("Asia/Yangon")dt:=fromEpoch(t).In(locYangon)locYangon2,_:=time.LoadLocation("Asia/Yangon")dt2:=fromEpoch(t).In(locYangon2)fmt.Println(dt2==dt)}funcfromEpoch

date - time.AddDate() 不适用于仅解析时间,并将日期设置为今天?

https://play.golang.org/p/O1FWb9O97ldfuncmain(){//constlongForm="Jan2,2006at3:04pm(MST)"t1,_:=time.Parse("03:04:05","12:03:30")fmt.Printf("currentdatetime%v\n",t1)now:=time.Now().UTC()t1.AddDate(now.Year(),int(now.Month()),now.Day())fmt.Printf("currentdatetime%v",t1)}输出当前日期时间0000-01-0112:03:30+0

linux - 无法输出缓冲区

我正在尝试在kali上运行nikto-h{url}。我的nikto-h命令工作正常,但是当我添加URL时,没有任何输出。不知道是进程的问题还是其他的。我怎样才能直接看到输出而不是缓冲和显示它?packagemainimport("bytes""fmt""log""os/exec"//"strings")funcmain(){cmd:=exec.Command("nikto","-h","google.com")//cmd.Stdin=strings.NewReader("someinput")varoutbytes.Buffercmd.Stdout=&outerr:=cmd.Run()

go - 从 golang 中运行一个 linux 命令(我想运行 go fmt ./..)

在我问这个之前,我需要道歉,我知道在代码中以编程方式运行这种东西是愚蠢的,应该移动到makefiles-但管理层希望这个工作的二进制文件中的所有内容,所以,酷...我需要知道如何cd到一个目录,然后运行:gofmt./...我找到了exec等东西...但问题是当我需要运行命令时,它似乎专门寻找要使用的文件。有人做过吗?有例子给我吗? 最佳答案 当您运行“gofmt”时,您实际上正在运行一个文件,只是不知道它是哪个文件。尝试在命令行上运行“whichgo”。这将返回运行文件的路径。然后你可以使用你找到的exec函数。要改变你的工作目录

go - 我从客户端机器上使用 Go 运行 scp -i ssh "<filepath of remote linux machine> . ",但它返回 "no such file or directory"

这个问题在这里已经有了答案:fork/exec.nosuchfileordirectoryexitstatus1(3个答案)call'gobuild'commandfromgolangos.exec(1个回答)Whyisthiscurlcommandnotworking?(2个答案)callingcommandwithsomeargumentsworksbutnotwithothersbutworksfromconsole(1个回答)关闭3年前。如何使用Go执行scp-issh"."?我使用了以下代码片段。cmd:=exec.Command("scp-idragonstone.pem@

linux - 无法运行在/etc/inittab 中配置的 tview 应用程序

我正在尝试使用tview运行一个应用程序来显示一些遥测数据。当正常从cmdline调用时,应用程序运行良好。当我更新我的inittab以运行应用程序时:c1:2345:respawn:/usr/sbin/systatus38400tty1linux那是当我看到无法打开/dev/tty时,没有这样的设备或地址,引用了我调用tview.Application.Run的行号。文件/设备确实存在。关于如何解决这个问题有什么想法吗?我引用这个:GoLang-termbox:panic:open/dev/tty:nosuchdeviceoraddress即使我没有使用termbox,问题也是一样的

linux - 在 go 中使用 windows dll 库,为 linux 和 mac os x 编译

我只是想知道是否有机会在我的go项目中使用专有的windowsdll,为macosx和linux编译? 最佳答案 不,您不能在Linux/OSX上使用Windowsdll。但是,如果您真的必须这样做,您总是可以像TeamViewer那样使用预编译的wine和Steam上的一些“近乎原生”的游戏来发布您的软件。 关于linux-在go中使用windowsdll库,为linux和macosx编译,我们在StackOverflow上找到一个类似的问题: https: