我现在正在阅读包中的源代码syscall
,并遇到了一些问题:
由于我完全是 and 的菜鸟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
好像是assemble写的(看不懂),能不能解释一下第61-80行发生了什么,ok1:
第76行下part是什么意思?
我还在http://golang.org/src/pkg/syscall/zsyscall_darwin_amd64.go中找到了一些代码,它的文件名是什么zsyscall
意思?
syscall
& 和有什么不一样rawsyscall
?
如果我想编写自己的系统调用函数,如何以及何时使用它们(是的,os 包提供了很多选择,但仍有一些情况它没有涵盖)?
这么多菜鸟问题,感谢您的耐心阅读和回答:)