streamly-core
Safe HaskellNone
LanguageHaskell2010

Streamly.Internal.FileSystem.Posix.File

Synopsis

File open flags

newtype OpenFlags Source #

Open flags, see posix open system call man page.

Constructors

OpenFlags CInt 

defaultOpenFlags :: OpenFlags Source #

Default values for the OpenFlags.

By default a 0 value is used, no flag is set. See the open system call man page.

File status flags

File creation flags

File create mode

User Permissions

setUr :: FileMode -> FileMode Source #

setUw :: FileMode -> FileMode Source #

setUx :: FileMode -> FileMode Source #

clrUr :: FileMode -> FileMode Source #

clrUw :: FileMode -> FileMode Source #

clrUx :: FileMode -> FileMode Source #

Group Permissions

setGr :: FileMode -> FileMode Source #

setGw :: FileMode -> FileMode Source #

setGx :: FileMode -> FileMode Source #

clrGr :: FileMode -> FileMode Source #

clrGw :: FileMode -> FileMode Source #

clrGx :: FileMode -> FileMode Source #

Other Permissions

setOr :: FileMode -> FileMode Source #

setOw :: FileMode -> FileMode Source #

setOx :: FileMode -> FileMode Source #

clrOr :: FileMode -> FileMode Source #

clrOw :: FileMode -> FileMode Source #

clrOx :: FileMode -> FileMode Source #

Status bits

setSuid :: FileMode -> FileMode Source #

setSgid :: FileMode -> FileMode Source #

setSticky :: FileMode -> FileMode Source #

clrSuid :: FileMode -> FileMode Source #

clrSgid :: FileMode -> FileMode Source #

clrSticky :: FileMode -> FileMode Source #

Fd based Low Level

openAt Source #

Arguments

:: Maybe Fd

Optional directory file descriptor

-> PosixPath

Pathname to open

-> OpenFlags

Append, exclusive, truncate, etc.

-> Maybe FileMode

Create mode

-> IO Fd 

Open a file relative to an optional directory file descriptor.

Note: In Haskell, using an fd directly for IO may be problematic as blocking file system operations on the file might block the capability and GC for "unsafe" calls. "safe" calls may be more expensive. Also, you may have to synchronize concurrent access via multiple threads.

close :: Fd -> IO () Source #

Handle based

openFile :: PosixPath -> IOMode -> IO Handle Source #

Like openFile in base package but using Path instead of FilePath. Use hSetBinaryMode on the handle if you want to use binary mode.

withFile :: PosixPath -> IOMode -> (Handle -> IO r) -> IO r Source #

Like withFile in base package but using Path instead of FilePath. Use hSetBinaryMode on the handle if you want to use binary mode.

openBinaryFile :: PosixPath -> IOMode -> IO Handle Source #

Like openBinaryFile in base package but using Path instead of FilePath.

withBinaryFile :: PosixPath -> IOMode -> (Handle -> IO r) -> IO r Source #

Like withBinaryFile in base package but using Path instead of FilePath.

data Fd #

Instances

Instances details
Storable Fd 
Instance details

Defined in System.Posix.Types

Methods

sizeOf :: Fd -> Int #

alignment :: Fd -> Int #

peekElemOff :: Ptr Fd -> Int -> IO Fd #

pokeElemOff :: Ptr Fd -> Int -> Fd -> IO () #

peekByteOff :: Ptr b -> Int -> IO Fd #

pokeByteOff :: Ptr b -> Int -> Fd -> IO () #

peek :: Ptr Fd -> IO Fd #

poke :: Ptr Fd -> Fd -> IO () #

Bits Fd 
Instance details

Defined in System.Posix.Types

Methods

(.&.) :: Fd -> Fd -> Fd #

(.|.) :: Fd -> Fd -> Fd #

xor :: Fd -> Fd -> Fd #

complement :: Fd -> Fd #

shift :: Fd -> Int -> Fd #

rotate :: Fd -> Int -> Fd #

zeroBits :: Fd #

bit :: Int -> Fd #

setBit :: Fd -> Int -> Fd #

clearBit :: Fd -> Int -> Fd #

complementBit :: Fd -> Int -> Fd #

testBit :: Fd -> Int -> Bool #

bitSizeMaybe :: Fd -> Maybe Int #

bitSize :: Fd -> Int #

isSigned :: Fd -> Bool #

shiftL :: Fd -> Int -> Fd #

unsafeShiftL :: Fd -> Int -> Fd #

shiftR :: Fd -> Int -> Fd #

unsafeShiftR :: Fd -> Int -> Fd #

rotateL :: Fd -> Int -> Fd #

rotateR :: Fd -> Int -> Fd #

popCount :: Fd -> Int #

FiniteBits Fd 
Instance details

Defined in System.Posix.Types

Bounded Fd 
Instance details

Defined in System.Posix.Types

Methods

minBound :: Fd #

maxBound :: Fd #

Enum Fd 
Instance details

Defined in System.Posix.Types

Methods

succ :: Fd -> Fd #

pred :: Fd -> Fd #

toEnum :: Int -> Fd #

fromEnum :: Fd -> Int #

enumFrom :: Fd -> [Fd] #

enumFromThen :: Fd -> Fd -> [Fd] #

enumFromTo :: Fd -> Fd -> [Fd] #

enumFromThenTo :: Fd -> Fd -> Fd -> [Fd] #

Ix Fd 
Instance details

Defined in System.Posix.Types

Methods

range :: (Fd, Fd) -> [Fd] #

index :: (Fd, Fd) -> Fd -> Int #

unsafeIndex :: (Fd, Fd) -> Fd -> Int #

inRange :: (Fd, Fd) -> Fd -> Bool #

rangeSize :: (Fd, Fd) -> Int #

unsafeRangeSize :: (Fd, Fd) -> Int #

Num Fd 
Instance details

Defined in System.Posix.Types

Methods

(+) :: Fd -> Fd -> Fd #

(-) :: Fd -> Fd -> Fd #

(*) :: Fd -> Fd -> Fd #

negate :: Fd -> Fd #

abs :: Fd -> Fd #

signum :: Fd -> Fd #

fromInteger :: Integer -> Fd #

Read Fd 
Instance details

Defined in System.Posix.Types

Integral Fd 
Instance details

Defined in System.Posix.Types

Methods

quot :: Fd -> Fd -> Fd #

rem :: Fd -> Fd -> Fd #

div :: Fd -> Fd -> Fd #

mod :: Fd -> Fd -> Fd #

quotRem :: Fd -> Fd -> (Fd, Fd) #

divMod :: Fd -> Fd -> (Fd, Fd) #

toInteger :: Fd -> Integer #

Real Fd 
Instance details

Defined in System.Posix.Types

Methods

toRational :: Fd -> Rational #

Show Fd 
Instance details

Defined in System.Posix.Types

Methods

showsPrec :: Int -> Fd -> ShowS #

show :: Fd -> String #

showList :: [Fd] -> ShowS #

Eq Fd 
Instance details

Defined in System.Posix.Types

Methods

(==) :: Fd -> Fd -> Bool #

(/=) :: Fd -> Fd -> Bool #

Ord Fd 
Instance details

Defined in System.Posix.Types

Methods

compare :: Fd -> Fd -> Ordering #

(<) :: Fd -> Fd -> Bool #

(<=) :: Fd -> Fd -> Bool #

(>) :: Fd -> Fd -> Bool #

(>=) :: Fd -> Fd -> Bool #

max :: Fd -> Fd -> Fd #

min :: Fd -> Fd -> Fd #