用 Go 实现一个守护进程
文章
实现一个守护进程,同时还可以调用该程序加特定参数停止该守护进程 package main import ( "fmt" "io/ioutil" "os" "os/exec" "path/filepath" "strconv" "time" ) func main() { // 处理程序后的参数 if len(os.Args[1:]) > 0 { switch os.Args[1] { // 停止守护进程……
Tags: #Go
实现一个类似RRDTool的算法
文章
RRDTool 中有一种算法: 每周的数据按每天汇总 每月的数据按每周汇总 每年的数据按每月汇总 或者说实现以下需求: 时间在三个月以内的,保留全部 时间在3-6个月……
Tags: #Go · #RRDTool
让 C 语言使用 Go 的回调函数
文章
在封装 XMMS2 的过程中我遇到了一个问题 typedef int (*xmmsv_list_compare_func_t)(xmmsv_t **, xmmsv_t **); int xmmsv_list_sort (xmmsv_t *listv, xmmsv_list_compare_func_t comparator) XMMS_PUBLIC; 这货居然用了回调(Callback)! 于是我尝试直接将 Go 函数的地址传给 C 代码,结果……
Tags: #Go · #C
基于libxmmsclient的Go语言绑定
文章
代码:[email protected] 文档:[email protected] 在我发现 XMMS2 是使用了 C/S 架构以后,就有了一个想法: 用 Go/QML/XMMS2 写一个简……
Tags: #Go · #Xmms2 · #C
[转]Golang中的“泛型”支持
文章 · 转载
来源 Golang不支持一般的类似java中的标记式泛型。很多人因此而十分不满,认为没有泛型增加了很多工作量。而目前由于泛型支持的复杂性,Go……
Tags: #Go · #泛型
Go的异步UDP服务器
文章
package main import( "net" "fmt" "strings" "runtime" ) type Data struct{ C string D *net.UDPAddr } func main(){ runtime.GOMAXPROCS(runtime.NumCPU()) addr, err := net.ResolveUDPAddr("udp", ":25252") // Niconiconi~ if err != nil{ fmt.Println("!ERR:", err) return } conn, err := net.ListenUDP("udp", addr) if err != nil{ fmt.Println("!ERR:", err) return } defer conn.Close() c := make(chan Data, 1024) // 带缓冲的通……
Tags: #Go · #Server

 

TonyChyi © 2020 GPLv2