os.Mkdir与syscall.Mkdir,Golang有什么区别?

os.Mkdir and syscall.Mkdir both have same API in Golang

syscall.Mkdir:

func Mkdir(path string, mode uint32) (err error)

os.Mkdir:

func Mkdir(name string, perm FileMode) error

What is the difference between them?

The first one is the direct system call, platform dependent, probably faster/you can use all platform dependent bits (like sticky bit on Unix/Linux for instance)

The latter is the portable API which is supposed to work the same on every platform, note that second argument is no longer an anonymous integer but a constrained type.