diff options
| author | Paul Buetow <paul@buetow.org> | 2025-03-16 17:59:11 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-03-16 17:59:11 +0200 |
| commit | 4f744e2e83072405bc448ac212787214ed5472fa (patch) | |
| tree | 6e5fc896ede21c5a6c318fecb2568d14643a0621 /internal/file/flags.go | |
| parent | 4b3026d0571b0e901cdbd2874b7958a2dc58b10c (diff) | |
initial file flags
Diffstat (limited to 'internal/file/flags.go')
| -rw-r--r-- | internal/file/flags.go | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/internal/file/flags.go b/internal/file/flags.go new file mode 100644 index 0000000..fcba927 --- /dev/null +++ b/internal/file/flags.go @@ -0,0 +1,43 @@ +package file + +import ( + "strings" + "syscall" +) + +var flagsToHuman = map[int]string{ + syscall.O_ACCMODE: "O_ACCMODE", + syscall.O_APPEND: "O_APPEND", + syscall.O_ASYNC: "O_ASYNC", + syscall.O_CLOEXEC: "O_CLOEXEC", + syscall.O_CREAT: "O_CREAT", + syscall.O_DIRECT: "O_DIRECT", + syscall.O_DIRECTORY: "O_DIRECTORY", + syscall.O_DSYNC: "O_DSYNC", + syscall.O_EXCL: "O_EXCL", + syscall.O_NOATIME: "O_NOATIME", + syscall.O_NOCTTY: "O_NOCTTY", + syscall.O_NOFOLLOW: "O_NOFOLLOW", + syscall.O_NONBLOCK: "O_NONBLOCK", + syscall.O_RDONLY: "O_RDONLY", + syscall.O_RDWR: "O_RDWR", + syscall.O_SYNC: "O_SYNC", + syscall.O_TRUNC: "O_TRUNC", + syscall.O_WRONLY: "O_WRONLY", +} + +func FlagsToStr(flags int32) string { + return strings.Join(FlagsToStrs(flags), "|") +} + +func FlagsToStrs(flags int32) (result []string) { + for flag, name := range flagsToHuman { + if int(flags)&flag == flag { + result = append(result, name) + } + } + if len(result) == 0 { + result = append(result, "O_RDONLY") + } + return +} |
