3 ms·
Does anyone know what's going on with this line: > file := os.NewFile(3, "/tmp/sock-go-graceful-restart") What's with that filesystem path, which isn't refere
by agwa 12y ago
Does anyone know what's going on with this line:
> file := os.NewFile(3, "/tmp/sock-go-graceful-restart")
What's with that filesystem path, which isn't referenced anywhere else, and which should be unnecessary because the file descriptor 3 is inherited when the process starts?
- peterwaller 12y agoGiven a file descriptor, this returns an os.File [1] (it's analogous to a `FILE` from C-land). Which among other things, knows its name [2]. I guess it's hard to in a portable way go from a file descriptor to filename, so it's a parameter to `NewFile`. [1] http://golang.org/pkg/os/#File http://golang.org/pkg/os/#File [2] http://golang.org/pkg/os/#File.Name http://golang.org/pkg/os/#File.Name
- agwa 12y agoThanks. Indeed, it's not generally possible to go from a file descriptor to filename, because not all file descriptors refer to files with names (e.g. sockets). So I guess the second argument in this case is just a dummy value that is necessary because the Go library doesn't have a way to create a nameless "file" from a file descriptor.