在研究我的另一个问题Go package syscall conn.Read() is non-blocking and cause high CPU usagesyscall
时,我阅读了包中的源代码。
由于我在 OS X 10.8.3 上找到了我的最后一个问题,因此这里是相关的源代码:
http://golang.org/src/pkg/syscall/zsyscall_darwin_amd64.go?h=Read#L898
我不知道是什么Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
意思,实际上我不明白unsafe.Pointer
&之类的东西Syscall()
。它们是如何工作的?
此外,任何人都可以解释评论// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
,这些东西如何以及为什么通过不同的实现在特定平台上工作?以及syscall
包如何生成这些接口?
Read()
如果有人可以解释与相关的特定功能syscall
可以帮助我更好地理解它,谢谢。