現在パッケージ内のソースコードを読んでsyscall
いて、いくつかの問題に遭遇しました:
私は完全に と の初心者なsyscall
のでassembly
、それについて知っていることを遠慮なく共有してください:)
まず func についてRawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)
: そのパラメータtrap, a1, a2, a3
と戻り値r1 r2
は何を意味しますか? ドキュメントやサイトを検索しましたが、これについての説明が不足しているようです。
第二に、私は使用しているので、darwin/amd64
ソースコードを検索してここで見つけました:
http://golang.org/src/pkg/syscall/asm_darwin_amd64.s?h=RawSyscall
アセンブルで書かれているようですが(私には理解できません)、61行目から80行目で何が起こったのか、ok1:
76行目以下の部分の意味を教えてください。
http://golang.org/src/pkg/syscall/zsyscall_darwin_amd64.goにもいくつかのコードが見つかりましzsyscall
た。ファイル名の意味は何ですか?
と はどう違いsyscall
ますrawsyscall
か?
独自の syscall 関数を作成する場合、それらをいつ、どのように使用すればよいですか (はい、os パッケージには多くの選択肢がありましたが、まだカバーされていない状況があります)。
非常に多くの初心者の質問です。読んで回答していただきありがとうございます:)