- data Directory : Type
A directory handle
- DHandle : (p : Ptr) ->
Directory
- data File : Type
A file handle
- FHandle : (p : Ptr) ->
File
- data FileError : Type
An error from a file operation
- GenericFileError : Int ->
FileError
- FileReadError : FileError
- FileWriteError : FileError
- FileNotFound : FileError
- PermissionDenied : FileError
- data Mode : Type
Modes for opening files
- Read : Mode
- WriteTruncate : Mode
- Append : Mode
- ReadWrite : Mode
- ReadWriteTruncate : Mode
- ReadAppend : Mode
- changeDir : String ->
IO Bool
- closeFile : File ->
IO ()
- createDir : String ->
IO (Either FileError
())
- currentDir : IO String
- dirClose : Directory ->
IO ()
- dirEntry : Directory ->
IO (Either FileError
String)
- dirError : Directory ->
IO Bool
- dirOpen : (d : String) ->
IO (Either FileError
Directory)
- fEOF : File ->
IO Bool
Check if a file handle has reached the end
- fGetChars : (h : File) ->
(len : Int) ->
IO (Either FileError
String)
Read up to a number of characters from a file
- h
a file handle which must be open for reading
- fGetLine : (h : File) ->
IO (Either FileError
String)
Read a line from a file
- h
a file handle which must be open for reading
- fPutStr : (h : File) ->
(str : String) ->
IO (Either FileError
())
Write a line to a file
- h
a file handle which must be open for writing
- str
the line to write to the file
- fPutStrLn : File ->
String ->
IO (Either FileError
())
- fRemove : (s : String) ->
IO Bool
Remove a file
- s
the file name
- ferror : File ->
IO Bool
- fflush : File ->
IO ()
- fgetc : File ->
IO (Either FileError
Char)
- fileAccessTime : File ->
IO (Either FileError
Integer)
- fileModifiedTime : File ->
IO (Either FileError
Integer)
- fileSize : File ->
IO (Either FileError
Int)
Return the size of a File
Returns an error if the File is not an ordinary file (e.g. a directory)
Also note that this currently returns an Int, which may overflow if the
file is very big
- fileStatusTime : File ->
IO (Either FileError
Integer)
- fopen : (f : String) ->
(m : String) ->
IO (Either FileError
File)
Open a file
- f
the filename
- m
the mode as a String ("r"
, "w"
, or "r+"
)
- fpoll : File ->
IO Bool
- getFileError : IO FileError
- modeStr : Mode ->
String
- openFile : (f : String) ->
(m : Mode) ->
IO (Either FileError
File)
Open a file
- f
the filename
- m
the mode; either Read, WriteTruncate, Append, ReadWrite, ReadWriteTruncate, or ReadAppend
- openFileX : (f : String) ->
(m : Mode) ->
IO (Either FileError
File)
Open a file using C11 extended modes.
- f
the filename
- m
the mode; either Read, WriteTruncate, Append, ReadWrite, ReadWriteTruncate, or ReadAppend
- pclose : File ->
IO ()
- popen : String ->
Mode ->
IO (Either FileError
File)
- readFile : (filepath : String) ->
IO (Either FileError
String)
Read the contents of a text file into a string
This checks the size of the file before beginning to read, and only
reads that many bytes, to ensure that it remains a total function if
the file is appended to while being read.
This only works reliably with text files, since it relies on null-terminated
strings internally.
Returns an error if filepath is not a normal file.
- stderr : File
Standard output
- stdin : File
Standard input
- stdout : File
Standard output
- validFile : File ->
IO Bool
Check whether a file handle is actually a null pointer
- writeFile : (filepath : String) ->
(contents : String) ->
IO (Either FileError
())
Write a string to a file