go

golangでご覧!wて言いたくてgolangでHTTPサーバ書いた

go

golangでご覧!wて言いたくてHTTPサーバー書いた。PythonのSimpleHTTPServerっぽくなった。名前がgoranなので「golangのgoranでご覧!w」と言えるようになった。 tkmru/goran: simple http server. 雑に以下のようなかんじで使える。localhostにしないと使えな…

コマンドラインオプションをflagでパースしたとき-hを指定するとexit status2と出てしまう

go

どういうこと golangではコマンドラインオプションをflagパッケージを使ってパースすることができる。 しかし、オプションに-h、--helpを指定すると、以下のようにexit status2と出てしまう。 なんでこんな仕様なのか分からない... $ go run flagSample.go -…

メソッドを関数に内包するとライブラリ作るときに便利

go

メソッドを関数に内包すると当然ながら関数のように扱える。初期化済みのインスタンスや構造体を使うことで、構造体の初期化をしなくていいようにしている。これは特にライブラリを作るときに便利で、lib.func() という風にメソッドを呼ぶことができる。ライ…

goのバイナリを簡単に読みたい

先日の goのバイナリをちょっとまじめに読んでみる、strippedなgoのバイナリを読み解くでは気合いでgoのバイナリを読んでいった。goのバイナリの解析の難しいところは、strippedだった場合に静的リンクされたライブラリの1000個以上の関数がどの関数なのか分…

strippedなgoのバイナリを読み解く

この前はふつーのgoのバイナリを読んだ。今回はstrippedなgoのバイナリを読んでいく。 環境 $ uname -a Linux ubuntu 3.19.0-58-generic #64~14.04.1-Ubuntu SMP Fri Mar 18 19:05:43 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux $ lsb_release -a No LSB modu…

goのバイナリをちょっとまじめに読んでみる

goのバイナリをちょっとまじめに読んだのでメモ。runtimeのコードと合わせて、バイナリがどういう構造になっているのか正面から読んだ。 環境 $ uname -a Linux ubuntu 3.19.0-58-generic #64~14.04.1-Ubuntu SMP Fri Mar 18 19:05:43 UTC 2016 x86_64 x86_6…