modernc.org/99c@v1.0.1-0.20181109153923-a9e8197063d9/examples/embedding/main.go (about) 1 //go:generate 99c -o assets/a.out main.c 2 //go:generate assets 3 4 package main 5 6 import ( 7 "bytes" 8 "fmt" 9 "strings" 10 "time" 11 12 "modernc.org/httpfs" 13 "modernc.org/virtual" 14 ) 15 16 func main() { 17 fs := httpfs.NewFileSystem(assets, time.Now()) 18 f, err := fs.Open("/a.out") 19 if err != nil { 20 panic(err) 21 } 22 23 var bin virtual.Binary 24 if _, err := bin.ReadFrom(f); err != nil { 25 panic(err) 26 } 27 28 var out bytes.Buffer 29 exitCode, err := virtual.Exec(&bin, nil, strings.NewReader("Foo Bar"), &out, &out, 0, 1<<20, "") 30 if err != nil { 31 panic(err) 32 } 33 34 fmt.Printf("%s\n%v\n", out.Bytes(), exitCode) 35 }