Documentation
¶
Overview ¶
Package ensurefds012 ensures that file descriptors 0,1,2 are open. It opens multiple copies of /dev/null as required. The Go stdlib as well as the gocryptfs code rely on the fact that fds 0,1,2 are always open.
Use like this:
import _ "github.com/rfjakob/gocryptfs/v2/internal/ensurefds012"
The import line MUST be in the alphabitcally first source code file of package main!
You can test if it works as expected by inserting a long sleep into main, startings gocryptfs with all fds closed like this,
$ ./gocryptfs 0<&- 1>&- 2>&-
and then checking the open fds. It should look like this:
$ ls -l /proc/$(pgrep gocryptfs)/fd total 0 lrwx------. 1 jakob jakob 64 Jan 5 15:54 0 -> /dev/null lrwx------. 1 jakob jakob 64 Jan 5 15:54 1 -> /dev/null lrwx------. 1 jakob jakob 64 Jan 5 15:54 2 -> /dev/null l-wx------. 1 jakob jakob 64 Jan 5 15:54 3 -> /dev/null lrwx------. 1 jakob jakob 64 Jan 5 15:54 4 -> 'anon_inode:[eventpoll]'
See https://github.com/rfjakob/gocryptfs/issues/320 for details.
Click to show internal directories.
Click to hide internal directories.