github.com/ggreg80/ketos@v0.0.0-20171109040536-049616f51ddb/testdata/dl/main.go (about) 1 package main 2 3 import ( 4 "bytes" 5 "fmt" 6 "github.com/rainycape/dl" 7 ) 8 9 func main() { 10 11 libc, err := dl.Open("libc", 0) 12 if err != nil { 13 panic(err) 14 } 15 defer libc.Close() 16 17 var snprintf func([]byte, uint, string, ...interface{}) int 18 err = libc.Sym("snprintf", &snprintf) 19 if err != nil { 20 panic(err) 21 } 22 23 buf := make([]byte, 200) 24 snprintf(buf, uint(len(buf)), "hello %s!\n", "world") 25 s := string(buf[:bytes.IndexByte(buf, 0)]) 26 27 fmt.Println(s) 28 }