Files
stfs/internal/tape/read.go
2021-12-06 21:27:59 +01:00

28 lines
496 B
Go

package tape
import "os"
func OpenTapeReadOnly(tape string) (f *os.File, isRegular bool, err error) {
fileDescription, err := os.Stat(tape)
if err != nil {
return nil, false, err
}
isRegular = fileDescription.Mode().IsRegular()
if isRegular {
f, err = os.Open(tape)
if err != nil {
return f, isRegular, err
}
return f, isRegular, nil
}
f, err = os.OpenFile(tape, os.O_RDONLY, os.ModeCharDevice)
if err != nil {
return f, isRegular, err
}
return f, isRegular, nil
}