summaryrefslogtreecommitdiff
path: root/vendor/github.com/tetratelabs/wazero/internal/sysfs/open_file_notwindows.go
blob: 670e3591028a42fcc3e552e855e5c2c8af212d0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//go:build !windows && !tinygo

package sysfs

import (
	"io/fs"
	"os"

	"github.com/tetratelabs/wazero/experimental/sys"
)

// openFile is like os.OpenFile except it accepts a sys.Oflag and returns
// sys.Errno. A zero sys.Errno is success.
func openFile(path string, oflag sys.Oflag, perm fs.FileMode) (*os.File, sys.Errno) {
	f, err := os.OpenFile(path, toOsOpenFlag(oflag), perm)
	// Note: This does not return a sys.File because sys.FS that returns
	// one may want to hide the real OS path. For example, this is needed for
	// pre-opens.
	return f, sys.UnwrapOSError(err)
}