为了账号安全,请及时绑定邮箱和手机立即绑定

我应该用 Go 编写跨平台服务吗?

我应该用 Go 编写跨平台服务吗?

Go
qq_遁去的一_1 2021-08-23 15:35:49
我正在考虑编写跨平台(Windows/Debian/Darwin/Red Hat)服务并比较语言选项。我真的很欣赏 Go 的跨平台线程能力和简单的交叉编译,但我想确保我能够在需要时轻松访问任何本机(例如 Windows 服务)API。我应该考虑什么样的事情来推动我的语言决定?
查看完整描述

1 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

Go 完全支持通过其核心包调用任意Win32 API syscall

虽然调用原始 Win32 viasyscall写起来不是很漂亮(主要是因为你跨越了托管/非托管边界,然后返回)并且没有编译器的支持(类似于 Delphi 的支持),但这只是好的,此类 API 调用的包装器函数的生成可以自动化——Go 核心包本身就使用了这个工具,其他流行的例子包括这个odbc包。

请注意,已经存在winsvc一个库,它将 Go 与 Windows SCM 和事件日志连接起来。

还要看看service哪个提供了统一的 API,用于使用平台原生工具(它winsvc在 Windows、IIRC 上使用)将您的程序转换为守护进程/服务。


查看完整回答
反对 回复 2021-08-23
  • 1 回答
  • 0 关注
  • 210 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信