PreviousUpNext

14.3.4  Posix_File

The standard library Posix_File api is a sub-API of the Posix_1003_1b API.

The above information is manually maintained and may contain errors.

api {    eqtype User_Id ;
    eqtype Group_Id ;
    eqtype File_Descriptor ;
    fd_to_int : File_Descriptor -> Int;
    int_to_fd : Int -> File_Descriptor;
    fd_to_iod : File_Descriptor -> Int;
    iod_to_fd : Int -> File_Descriptor;
    Directory_Stream ;
    open_directory_stream : String -> Directory_Stream;
    read_directory_entry : Directory_Stream -> Null_Or(String );
    rewind_directory_stream : Directory_Stream -> Void;
    close_directory_stream : Directory_Stream -> Void;
    change_directory : String -> Void;
    current_directory : Void -> String;
    stdin : File_Descriptor;
    stdout : File_Descriptor;
    stderr : File_Descriptor;
    package s : api {
                    Mode ;
                    Flags  = Mode;
                    to_unt : Flags -> one_word_unt::Unt;
                    from_unt : one_word_unt::Unt -> Flags;
                    all : Flags;
                    flags : List(Flags ) -> Flags;
                    intersect : List(Flags ) -> Flags;
                    clear : (Flags , Flags) -> Flags;
                    all_set : (Flags , Flags) -> Bool;
                    any_set : (Flags , Flags) -> Bool;
                    irwxu : Mode;
                    irusr : Mode;
                    iwusr : Mode;
                    ixusr : Mode;
                    irwxg : Mode;
                    irgrp : Mode;
                    iwgrp : Mode;
                    ixgrp : Mode;
                    irwxo : Mode;
                    iroth : Mode;
                    iwoth : Mode;
                    ixoth : Mode;
                    isuid : Mode;
                    isgid : Mode;
                };;
    mode_0755 : s::Mode;
    mode_0700 : s::Mode;
    mode_0666 : s::Mode;
    mode_0644 : s::Mode;
    mode_0600 : s::Mode;
    package o : api {
                    eqtype Flags ;
                    to_unt : Flags -> one_word_unt::Unt;
                    from_unt : one_word_unt::Unt -> Flags;
                    all : Flags;
                    flags : List(Flags ) -> Flags;
                    intersect : List(Flags ) -> Flags;
                    clear : (Flags , Flags) -> Flags;
                    all_set : (Flags , Flags) -> Bool;
                    any_set : (Flags , Flags) -> Bool;
                    append : Flags;
                    dsync : Flags;
                    excl : Flags;
                    noctty : Flags;
                    nonblock : Flags;
                    rsync : Flags;
                    sync : Flags;
                    trunc : Flags;
                };;
    Open_Mode  = O_RDONLY | O_RDWR | O_WRONLY;
    openf : (String , Open_Mode , o::Flags) -> File_Descriptor;
    createf : (String , Open_Mode , o::Flags , s::Mode)
              -> File_Descriptor;
    creat : (String , s::Mode) -> File_Descriptor;
    umask : s::Mode -> s::Mode;
    link : {new:String,  old:String} -> Void;
    mkstemp : Void -> File_Descriptor;
    mkdir : (String , s::Mode) -> Void;
    make_named_pipe : (String , s::Mode) -> Void;
    unlink : String -> Void;
    rmdir : String -> Void;
    rename : {from:String,  to:String} -> Void;
    symlink : {new:String,  old:String} -> Void;
    readlink : String -> String;
    ftruncate : (File_Descriptor , Int) -> Void;
    eqtype Device ;
    unt_to_dev : one_word_unt::Unt -> Device;
    dev_to_unt : Device -> one_word_unt::Unt;
    eqtype Inode ;
    unt_to_ino : one_word_unt::Unt -> Inode;
    ino_to_unt : Inode -> one_word_unt::Unt;
    package stat : api {
                       Stat  = {atime:time::Time,  ctime:time::Time,  dev:Int, 
                                ftype:Int,  gid:one_word_unt::Unt,  inode:Int, 
                                mode:s::Flags,  mtime:time::Time,  nlink:Int, 
                                size:Int,  uid:one_word_unt::Unt};
                       is_directory : Stat -> Bool;
                       is_char_dev : Stat -> Bool;
                       is_block_dev : Stat -> Bool;
                       is_file : Stat -> Bool;
                       is_pipe : Stat -> Bool;
                       is_symlink : Stat -> Bool;
                       is_socket : Stat -> Bool;
                       mode : Stat -> s::Mode;
                       inode : Stat -> Int;
                       dev : Stat -> Int;
                       nlink : Stat -> Int;
                       uid : Stat -> User_Id;
                       gid : Stat -> Group_Id;
                       size : Stat -> Int;
                       atime : Stat -> time::Time;
                       mtime : Stat -> time::Time;
                       ctime : Stat -> time::Time;
                   };;
    stat : String -> stat::Stat;
    lstat : String -> stat::Stat;
    fstat : File_Descriptor -> stat::Stat;
    Access_Mode  = MAY_EXECUTE | MAY_READ | MAY_WRITE;
    access : (String , List(Access_Mode )) -> Bool;
    chmod : (String , s::Mode) -> Void;
    fchmod : (File_Descriptor , s::Mode) -> Void;
    chown : (String , User_Id , Group_Id) -> Void;
    fchown : (File_Descriptor , User_Id , Group_Id) -> Void;
    utime : (String
             , Null_Or({actime:time::Time,  modtime:time::Time} ))
            -> Void;
    pathconf : (String , String) -> Null_Or(one_word_unt::Unt );
    fpathconf : (File_Descriptor , String)
                -> Null_Or(one_word_unt::Unt );
};


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext