Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

os.Mkdir versus syscall.Mkdir, what is the difference in Golang?

Tags:

go

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?

like image 635
arastu Avatar asked Aug 20 '16 06:08

arastu


1 Answers

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.

like image 141
Jean-François Fabre Avatar answered Oct 16 '22 19:10

Jean-François Fabre