File (Apache Tomcat 9.0.37 API Documentation)

org.apache.tomcat.jni

## Class File

- java.lang.Object
- - org.apache.tomcat.jni.File

-     public class File
      extends Object

  File
  Author:
    Mladen Turk

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `APR_BLK` a block device
    `static int` | `APR_CHR` a character device
    `static int` | `APR_CUR` Current
    `static int` | `APR_DIR` a directory
    `static int` | `APR_END` Go to end of file
    `static int` | `APR_FILE_ATTR_EXECUTABLE` File is executable
    `static int` | `APR_FILE_ATTR_HIDDEN` File is hidden
    `static int` | `APR_FILE_ATTR_READONLY` File is read-only
    `static int` | `APR_FINFO_ATIME` Creation or inode-changed time
    `static int` | `APR_FINFO_CSIZE` Size of the file
    `static int` | `APR_FINFO_CTIME` Modification Time
    `static int` | `APR_FINFO_DEV` Storage size consumed by the file
    `static int` | `APR_FINFO_DIRENT` an atomic unix apr_stat()
    `static int` | `APR_FINFO_GPROT` User protection bits
    `static int` | `APR_FINFO_GROUP` User
    `static int` | `APR_FINFO_ICASE` World protection bits
    `static int` | `APR_FINFO_IDENT` type, mtime, ctime, atime, size
    `static int` | `APR_FINFO_INODE` Device
    `static int` | `APR_FINFO_LINK` use OS's default permissions
    `static int` | `APR_FINFO_MIN` ->name in proper case
    `static int` | `APR_FINFO_MTIME` Stat the link not the file itself if it is a link
    `static int` | `APR_FINFO_NAME` if dev is case insensitive
    `static int` | `APR_FINFO_NLINK` Inode
    `static int` | `APR_FINFO_NORM` all protections
    `static int` | `APR_FINFO_OWNER` dev and inode
    `static int` | `APR_FINFO_PROT` user and group
    `static int` | `APR_FINFO_SIZE` Access Time
    `static int` | `APR_FINFO_TYPE` Number of links
    `static int` | `APR_FINFO_UPROT` Group
    `static int` | `APR_FINFO_USER` Type
    `static int` | `APR_FINFO_WPROT` Group protection bits
    `static int` | `APR_FLOCK_EXCLUSIVE` Exclusive lock.
    `static int` | `APR_FLOCK_NONBLOCK` do not block while acquiring the file lock
    `static int` | `APR_FLOCK_SHARED` Shared lock.
    `static int` | `APR_FLOCK_TYPEMASK` mask to extract lock type
    `static int` | `APR_FOPEN_APPEND` Append to the end of the file
    `static int` | `APR_FOPEN_BINARY` Open the file in binary mode
    `static int` | `APR_FOPEN_BUFFERED` Open the file for buffered I/O
    `static int` | `APR_FOPEN_CREATE` Create the file if not there
    `static int` | `APR_FOPEN_DELONCLOSE` Delete the file after close
    `static int` | `APR_FOPEN_EXCL` Open should fail if APR_CREATE and file exists.
    `static int` | `APR_FOPEN_LARGEFILE` Platform dependent flag to enable large file support; Warning : The APR_LARGEFILE flag only has effect on some platforms where sizeof(apr_off_t) == 4.
    `static int` | `APR_FOPEN_NOCLEANUP` Do not register a cleanup when the file is opened
    `static int` | `APR_FOPEN_READ` Open the file for reading
    `static int` | `APR_FOPEN_SENDFILE_ENABLED` Advisory flag that this file should support apr_socket_sendfile operation
    `static int` | `APR_FOPEN_SHARELOCK` Platform dependent support for higher level locked read/write access to support writes across process/machines
    `static int` | `APR_FOPEN_TRUNCATE` Open the file and truncate to 0 length
    `static int` | `APR_FOPEN_WRITE` Open the file for writing
    `static int` | `APR_FOPEN_XTHREAD` Platform dependent tag to open the file for use across multiple threads
    `static int` | `APR_FPROT_GEXECUTE` Write by group
    `static int` | `APR_FPROT_GREAD` Set group id
    `static int` | `APR_FPROT_GSETID` Execute by user
    `static int` | `APR_FPROT_GWRITE` Read by group
    `static int` | `APR_FPROT_OS_DEFAULT` Execute by others
    `static int` | `APR_FPROT_UEXECUTE` Write by user
    `static int` | `APR_FPROT_UREAD` Set user id
    `static int` | `APR_FPROT_USETID`
    `static int` | `APR_FPROT_UWRITE` Read by user
    `static int` | `APR_FPROT_WEXECUTE` Write by others
    `static int` | `APR_FPROT_WREAD` Sticky bit
    `static int` | `APR_FPROT_WSTICKY` Execute by group
    `static int` | `APR_FPROT_WWRITE` Read by others
    `static int` | `APR_LNK` a symbolic link
    `static int` | `APR_NOFILE` no file type determined
    `static int` | `APR_PIPE` a FIFO / pipe
    `static int` | `APR_REG` a regular file
    `static int` | `APR_SET` Set the file position
    `static int` | `APR_SOCK` a [unix domain] socket
    `static int` | `APR_UNKFILE` a file of some other unknown type

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `File()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static int` | `append(String fromPath, String toPath, int perms, long pool)` Append the specified file to another file.
    `static int` | `attrsSet(String fname, int attributes, int mask, long pool)` Set attributes of the specified file.
    `static int` | `close(long file)` Close the specified file.
    `static int` | `copy(String fromPath, String toPath, int perms, long pool)` Copy the specified file to another file.
    `static long` | `dup(long newFile, long oldFile, long pool)` Duplicate the specified file descriptor.
    `static int` | `dup2(long newFile, long oldFile, long pool)` Duplicate the specified file descriptor and close the original.
    `static int` | `eof(long fptr)` Are we at the end of the file
    `static int` | `flagsGet(long file)` Retrieve the flags that were passed into apr_file_open() when the file was opened.
    `static int` | `flush(long thefile)` Flush the file's buffer.
    `static int` | `getc(long thefile)` Read a character from the specified file.
    `static FileInfo` | `getInfo(int wanted, long thefile)` Get the specified file's stats.
    `static int` | `gets(byte[] buf, int offset, long thefile)` Read a string from the specified file.
    `static FileInfo` | `getStat(String fname, int wanted, long pool)` Get the specified file's stats.
    `static int` | `infoGet(FileInfo finfo, int wanted, long thefile)` Get the specified file's stats.
    `static int` | `lock(long thefile, int type)` Establish a lock on the specified, open file.
    `static long` | `mktemp(String templ, int flags, long pool)` Open a temporary file
    `static int` | `mtimeSet(String fname, long mtime, long pool)` Set the mtime of the specified file.
    `static String` | `nameGet(long thefile)` Return the file name of the current file.
    `static long` | `open(String fname, int flag, int perm, long pool)` Open the specified file.
    `static int` | `permsSet(String fname, int perms)` Set the specified file's permission bits.
    `static int` | `pipeCreate(long[] io, long pool)` Create an anonymous pipe.
    `static long` | `pipeTimeoutGet(long thepipe)` Get the timeout value for a pipe or manipulate the blocking state.
    `static int` | `pipeTimeoutSet(long thepipe, long timeout)` Set the timeout value for a pipe or manipulate the blocking state.
    `static int` | `putc(byte ch, long thefile)` Write a character into the specified file.
    `static int` | `puts(byte[] str, long thefile)` Write the string into the specified file.
    `static int` | `read(long thefile, byte[] buf, int offset, int nbytes)` Read data from the specified file.
    `static int` | `readb(long thefile, ByteBuffer buf, int offset, int nbytes)` Read data from the specified file.
    `static int` | `readFull(long thefile, byte[] buf, int offset, int nbytes)` Read data from the specified file, ensuring that the buffer is filled before returning.
    `static int` | `readFullb(long thefile, ByteBuffer buf, int offset, int nbytes)` Read data from the specified file, ensuring that the buffer is filled before returning.
    `static int` | `remove(String path, long pool)` Delete the specified file.
    `static int` | `rename(String fromPath, String toPath, long pool)` Rename the specified file.
    `static long` | `seek(long thefile, int where, long offset)` Move the read/write file offset to a specified byte within a file.
    `static int` | `stat(FileInfo finfo, String fname, int wanted, long pool)` Get the specified file's stats.
    `static int` | `trunc(long fp, long offset)` Truncate the file's length to the specified offset
    `static int` | `ungetc(byte ch, long thefile)` Put a character back onto a specified stream.
    `static int` | `unlock(long thefile)` Remove any outstanding locks on the file.
    `static int` | `write(long thefile, byte[] buf, int offset, int nbytes)` Write data to the specified file.
    `static int` | `writeb(long thefile, ByteBuffer buf, int offset, int nbytes)` Write data to the specified file.
    `static int` | `writeFull(long thefile, byte[] buf, int offset, int nbytes)` Write data to the specified file, ensuring that all of the data is written before returning.
    `static int` | `writeFullb(long thefile, ByteBuffer buf, int offset, int nbytes)` Write data to the specified file, ensuring that all of the data is written before returning.
    `static int` | `writev(long thefile, byte[][] vec)` Write data from array of byte arrays to the specified file.
    `static int` | `writevFull(long thefile, byte[][] vec)` Write data from array of byte arrays to the specified file, ensuring that all of the data is written before returning.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### APR_FOPEN_READ

          public static final int APR_FOPEN_READ

      Open the file for reading
      See Also:
        Constant Field Values

    - #### APR_FOPEN_WRITE

          public static final int APR_FOPEN_WRITE

      Open the file for writing
      See Also:
        Constant Field Values

    - #### APR_FOPEN_CREATE

          public static final int APR_FOPEN_CREATE

      Create the file if not there
      See Also:
        Constant Field Values

    - #### APR_FOPEN_APPEND

          public static final int APR_FOPEN_APPEND

      Append to the end of the file
      See Also:
        Constant Field Values

    - #### APR_FOPEN_TRUNCATE

          public static final int APR_FOPEN_TRUNCATE

      Open the file and truncate to 0 length
      See Also:
        Constant Field Values

    - #### APR_FOPEN_BINARY

          public static final int APR_FOPEN_BINARY

      Open the file in binary mode
      See Also:
        Constant Field Values

    - #### APR_FOPEN_EXCL

          public static final int APR_FOPEN_EXCL

      Open should fail if APR_CREATE and file exists.
      See Also:
        Constant Field Values

    - #### APR_FOPEN_BUFFERED

          public static final int APR_FOPEN_BUFFERED

      Open the file for buffered I/O
      See Also:
        Constant Field Values

    - #### APR_FOPEN_DELONCLOSE

          public static final int APR_FOPEN_DELONCLOSE

      Delete the file after close
      See Also:
        Constant Field Values

    - #### APR_FOPEN_XTHREAD

          public static final int APR_FOPEN_XTHREAD

      Platform dependent tag to open the file for use across multiple threads
      See Also:
        Constant Field Values

    - #### APR_FOPEN_SHARELOCK

          public static final int APR_FOPEN_SHARELOCK

      Platform dependent support for higher level locked read/write access to support writes across process/machines
      See Also:
        Constant Field Values

    - #### APR_FOPEN_NOCLEANUP

          public static final int APR_FOPEN_NOCLEANUP

      Do not register a cleanup when the file is opened
      See Also:
        Constant Field Values

    - #### APR_FOPEN_SENDFILE_ENABLED

          public static final int APR_FOPEN_SENDFILE_ENABLED

      Advisory flag that this file should support apr_socket_sendfile operation
      See Also:
        Constant Field Values

    - #### APR_FOPEN_LARGEFILE

          public static final int APR_FOPEN_LARGEFILE

      Platform dependent flag to enable large file support;
      Warning : The APR_LARGEFILE flag only has effect on some platforms where sizeof(apr_off_t) == 4. Where implemented, it allows opening and writing to a file which exceeds the size which can be represented by apr_off_t (2 gigabytes). When a file's size does exceed 2Gb, apr_file_info_get() will fail with an error on the descriptor, likewise apr_stat()/apr_lstat() will fail on the filename. apr_dir_read() will fail with APR_INCOMPLETE on a directory entry for a large file depending on the particular APR_FINFO_* flags. Generally, it is not recommended to use this flag.
      See Also:
        Constant Field Values

    - #### APR_SET

          public static final int APR_SET

      Set the file position
      See Also:
        Constant Field Values

    - #### APR_CUR

          public static final int APR_CUR

      Current
      See Also:
        Constant Field Values

    - #### APR_END

          public static final int APR_END

      Go to end of file
      See Also:
        Constant Field Values

    - #### APR_FILE_ATTR_READONLY

          public static final int APR_FILE_ATTR_READONLY

      File is read-only
      See Also:
        Constant Field Values

    - #### APR_FILE_ATTR_EXECUTABLE

          public static final int APR_FILE_ATTR_EXECUTABLE

      File is executable
      See Also:
        Constant Field Values

    - #### APR_FILE_ATTR_HIDDEN

          public static final int APR_FILE_ATTR_HIDDEN

      File is hidden
      See Also:
        Constant Field Values

    - #### APR_FLOCK_SHARED

          public static final int APR_FLOCK_SHARED

      Shared lock. More than one process or thread can hold a shared lock at any given time. Essentially, this is a "read lock", preventing writers from establishing an exclusive lock.
      See Also:
        Constant Field Values

    - #### APR_FLOCK_EXCLUSIVE

          public static final int APR_FLOCK_EXCLUSIVE

      Exclusive lock. Only one process may hold an exclusive lock at any given time. This is analogous to a "write lock".
      See Also:
        Constant Field Values

    - #### APR_FLOCK_TYPEMASK

          public static final int APR_FLOCK_TYPEMASK

      mask to extract lock type
      See Also:
        Constant Field Values

    - #### APR_FLOCK_NONBLOCK

          public static final int APR_FLOCK_NONBLOCK

      do not block while acquiring the file lock
      See Also:
        Constant Field Values

    - #### APR_NOFILE

          public static final int APR_NOFILE

      no file type determined
      See Also:
        Constant Field Values

    - #### APR_REG

          public static final int APR_REG

      a regular file
      See Also:
        Constant Field Values

    - #### APR_DIR

          public static final int APR_DIR

      a directory
      See Also:
        Constant Field Values

    - #### APR_CHR

          public static final int APR_CHR

      a character device
      See Also:
        Constant Field Values

    - #### APR_BLK

          public static final int APR_BLK

      a block device
      See Also:
        Constant Field Values

    - #### APR_PIPE

          public static final int APR_PIPE

      a FIFO / pipe
      See Also:
        Constant Field Values

    - #### APR_LNK

          public static final int APR_LNK

      a symbolic link
      See Also:
        Constant Field Values

    - #### APR_SOCK

          public static final int APR_SOCK

      a [unix domain] socket
      See Also:
        Constant Field Values

    - #### APR_UNKFILE

          public static final int APR_UNKFILE

      a file of some other unknown type
      See Also:
        Constant Field Values

    - #### APR_FPROT_USETID

          public static final int APR_FPROT_USETID

      See Also:
        Constant Field Values

    - #### APR_FPROT_UREAD

          public static final int APR_FPROT_UREAD

      Set user id
      See Also:
        Constant Field Values

    - #### APR_FPROT_UWRITE

          public static final int APR_FPROT_UWRITE

      Read by user
      See Also:
        Constant Field Values

    - #### APR_FPROT_UEXECUTE

          public static final int APR_FPROT_UEXECUTE

      Write by user
      See Also:
        Constant Field Values

    - #### APR_FPROT_GSETID

          public static final int APR_FPROT_GSETID

      Execute by user
      See Also:
        Constant Field Values

    - #### APR_FPROT_GREAD

          public static final int APR_FPROT_GREAD

      Set group id
      See Also:
        Constant Field Values

    - #### APR_FPROT_GWRITE

          public static final int APR_FPROT_GWRITE

      Read by group
      See Also:
        Constant Field Values

    - #### APR_FPROT_GEXECUTE

          public static final int APR_FPROT_GEXECUTE

      Write by group
      See Also:
        Constant Field Values

    - #### APR_FPROT_WSTICKY

          public static final int APR_FPROT_WSTICKY

      Execute by group
      See Also:
        Constant Field Values

    - #### APR_FPROT_WREAD

          public static final int APR_FPROT_WREAD

      Sticky bit
      See Also:
        Constant Field Values

    - #### APR_FPROT_WWRITE

          public static final int APR_FPROT_WWRITE

      Read by others
      See Also:
        Constant Field Values

    - #### APR_FPROT_WEXECUTE

          public static final int APR_FPROT_WEXECUTE

      Write by others
      See Also:
        Constant Field Values

    - #### APR_FPROT_OS_DEFAULT

          public static final int APR_FPROT_OS_DEFAULT

      Execute by others
      See Also:
        Constant Field Values

    - #### APR_FINFO_LINK

          public static final int APR_FINFO_LINK

      use OS's default permissions
      See Also:
        Constant Field Values

    - #### APR_FINFO_MTIME

          public static final int APR_FINFO_MTIME

      Stat the link not the file itself if it is a link
      See Also:
        Constant Field Values

    - #### APR_FINFO_CTIME

          public static final int APR_FINFO_CTIME

      Modification Time
      See Also:
        Constant Field Values

    - #### APR_FINFO_ATIME

          public static final int APR_FINFO_ATIME

      Creation or inode-changed time
      See Also:
        Constant Field Values

    - #### APR_FINFO_SIZE

          public static final int APR_FINFO_SIZE

      Access Time
      See Also:
        Constant Field Values

    - #### APR_FINFO_CSIZE

          public static final int APR_FINFO_CSIZE

      Size of the file
      See Also:
        Constant Field Values

    - #### APR_FINFO_DEV

          public static final int APR_FINFO_DEV

      Storage size consumed by the file
      See Also:
        Constant Field Values

    - #### APR_FINFO_INODE

          public static final int APR_FINFO_INODE

      Device
      See Also:
        Constant Field Values

    - #### APR_FINFO_NLINK

          public static final int APR_FINFO_NLINK

      Inode
      See Also:
        Constant Field Values

    - #### APR_FINFO_TYPE

          public static final int APR_FINFO_TYPE

      Number of links
      See Also:
        Constant Field Values

    - #### APR_FINFO_USER

          public static final int APR_FINFO_USER

      Type
      See Also:
        Constant Field Values

    - #### APR_FINFO_GROUP

          public static final int APR_FINFO_GROUP

      User
      See Also:
        Constant Field Values

    - #### APR_FINFO_UPROT

          public static final int APR_FINFO_UPROT

      Group
      See Also:
        Constant Field Values

    - #### APR_FINFO_GPROT

          public static final int APR_FINFO_GPROT

      User protection bits
      See Also:
        Constant Field Values

    - #### APR_FINFO_WPROT

          public static final int APR_FINFO_WPROT

      Group protection bits
      See Also:
        Constant Field Values

    - #### APR_FINFO_ICASE

          public static final int APR_FINFO_ICASE

      World protection bits
      See Also:
        Constant Field Values

    - #### APR_FINFO_NAME

          public static final int APR_FINFO_NAME

      if dev is case insensitive
      See Also:
        Constant Field Values

    - #### APR_FINFO_MIN

          public static final int APR_FINFO_MIN

      ->name in proper case
      See Also:
        Constant Field Values

    - #### APR_FINFO_IDENT

          public static final int APR_FINFO_IDENT

      type, mtime, ctime, atime, size
      See Also:
        Constant Field Values

    - #### APR_FINFO_OWNER

          public static final int APR_FINFO_OWNER

      dev and inode
      See Also:
        Constant Field Values

    - #### APR_FINFO_PROT

          public static final int APR_FINFO_PROT

      user and group
      See Also:
        Constant Field Values

    - #### APR_FINFO_NORM

          public static final int APR_FINFO_NORM

      all protections
      See Also:
        Constant Field Values

    - #### APR_FINFO_DIRENT

          public static final int APR_FINFO_DIRENT

      an atomic unix apr_stat()
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### File

          public File()

  - ### Method Detail

    - #### open

          public static long open(String fname,
                                  int flag,
                                  int perm,
                                  long pool)
                           throws Error

      Open the specified file.
      Parameters:
        `fname` - The full path to the file (using / on all systems)
        `flag` - Or'ed value of:

             APR_FOPEN_READ              open for reading
             APR_FOPEN_WRITE             open for writing
             APR_FOPEN_CREATE            create the file if not there
             APR_FOPEN_APPEND            file ptr is set to end prior to all writes
             APR_FOPEN_TRUNCATE          set length to zero if file exists
             APR_FOPEN_BINARY            not a text file (This flag is ignored on
                                         UNIX because it has no meaning)
             APR_FOPEN_BUFFERED          buffer the data.  Default is non-buffered
             APR_FOPEN_EXCL              return error if APR_CREATE and file exists
             APR_FOPEN_DELONCLOSE        delete the file after closing.
             APR_FOPEN_XTHREAD           Platform dependent tag to open the file
                                         for use across multiple threads
             APR_FOPEN_SHARELOCK         Platform dependent support for higher
                                         level locked read/write access to support
                                         writes across process/machines
             APR_FOPEN_NOCLEANUP         Do not register a cleanup with the pool
                                         passed in on the pool argument (see below).
                                         The apr_os_file_t handle in apr_file_t will not
                                         be closed when the pool is destroyed.
             APR_FOPEN_SENDFILE_ENABLED  Open with appropriate platform semantics
                                         for sendfile operations.  Advisory only,
                                         apr_socket_sendfile does not check this flag.

        `perm` - Access permissions for file.
        `pool` - The pool to use. If perm is APR_OS_DEFAULT and the file is being created, appropriate default permissions will be used.
      Returns:
        The opened file descriptor.
      Throws:
        `Error` - An error occurred

    - #### close

          public static int close(long file)

      Close the specified file.
      Parameters:
        `file` - The file descriptor to close.
      Returns:
        the operation status

    - #### flush

          public static int flush(long thefile)

      Flush the file's buffer.
      Parameters:
        `thefile` - The file descriptor to flush
      Returns:
        the operation status

    - #### mktemp

          public static long mktemp(String templ,
                                    int flags,
                                    long pool)
                             throws Error

      Open a temporary file
      Parameters:
        `templ` - The template to use when creating a temp file.
        `flags` - The flags to open the file with. If this is zero, the file is opened with APR_CREATE | APR_READ | APR_WRITE | APR_EXCL | APR_DELONCLOSE
        `pool` - The pool to allocate the file out of.
      Returns:
        The apr file to use as a temporary file. This function generates a unique temporary file name from template. The last six characters of template must be XXXXXX and these are replaced with a string that makes the filename unique. Since it will be modified, template must not be a string constant, but should be declared as a character array.
      Throws:
        `Error` - An error occurred

    - #### remove

          public static int remove(String path,
                                   long pool)

      Delete the specified file.
      Parameters:
        `path` - The full path to the file (using / on all systems)
        `pool` - The pool to use. If the file is open, it won't be removed until all instances are closed.
      Returns:
        the operation status

    - #### rename

          public static int rename(String fromPath,
                                   String toPath,
                                   long pool)

      Rename the specified file.
      Warning : If a file exists at the new location, then it will be overwritten. Moving files or directories across devices may not be possible.
      Parameters:
        `fromPath` - The full path to the original file (using / on all systems)
        `toPath` - The full path to the new file (using / on all systems)
        `pool` - The pool to use.
      Returns:
        the operation status

    - #### copy

          public static int copy(String fromPath,
                                 String toPath,
                                 int perms,
                                 long pool)

      Copy the specified file to another file. The new file does not need to exist, it will be created if required.
      Warning : If the new file already exists, its contents will be overwritten.
      Parameters:
        `fromPath` - The full path to the original file (using / on all systems)
        `toPath` - The full path to the new file (using / on all systems)
        `perms` - Access permissions for the new file if it is created. In place of the usual or'd combination of file permissions, the value APR_FILE_SOURCE_PERMS may be given, in which case the source file's permissions are copied.
        `pool` - The pool to use.
      Returns:
        the operation status

    - #### append

          public static int append(String fromPath,
                                   String toPath,
                                   int perms,
                                   long pool)

      Append the specified file to another file. The new file does not need to exist, it will be created if required.
      Parameters:
        `fromPath` - The full path to the source file (use / on all systems)
        `toPath` - The full path to the destination file (use / on all systems)
        `perms` - Access permissions for the destination file if it is created. In place of the usual or'd combination of file permissions, the value APR_FILE_SOURCE_PERMS may be given, in which case the source file's permissions are copied.
        `pool` - The pool to use.
      Returns:
        the operation status

    - #### puts

          public static int puts(byte[] str,
                                 long thefile)

      Write the string into the specified file.
      Parameters:
        `str` - The string to write. Must be NUL terminated!
        `thefile` - The file descriptor to write to
      Returns:
        the operation status

    - #### seek

          public static long seek(long thefile,
                                  int where,
                                  long offset)
                           throws Error

      Move the read/write file offset to a specified byte within a file.
      Parameters:
        `thefile` - The file descriptor
        `where` - How to move the pointer, one of:

             APR_SET  --  set the offset to offset
             APR_CUR  --  add the offset to the current position
             APR_END  --  add the offset to the current file size

        `offset` - The offset to move the pointer to.
      Returns:
        Offset the pointer was actually moved to.
      Throws:
        `Error` - If an error occurs reading the file

    - #### putc

          public static int putc(byte ch,
                                 long thefile)

      Write a character into the specified file.
      Parameters:
        `ch` - The character to write.
        `thefile` - The file descriptor to write to
      Returns:
        the operation status

    - #### ungetc

          public static int ungetc(byte ch,
                                   long thefile)

      Put a character back onto a specified stream.
      Parameters:
        `ch` - The character to write.
        `thefile` - The file descriptor to write to
      Returns:
        the operation status

    - #### write

          public static int write(long thefile,
                                  byte[] buf,
                                  int offset,
                                  int nbytes)

      Write data to the specified file. Write will write up to the specified number of bytes, but never more. If the OS cannot write that many bytes, it will write as many as it can. The third argument is modified to reflect the * number of bytes written. It is possible for both bytes to be written and an error to be returned. APR_EINTR is never returned.
      Parameters:
        `thefile` - The file descriptor to write to.
        `buf` - The buffer which contains the data.
        `offset` - Start offset in buf
        `nbytes` - The number of bytes to write
      Returns:
        The number of bytes written.

    - #### writeb

          public static int writeb(long thefile,
                                   ByteBuffer buf,
                                   int offset,
                                   int nbytes)

      Write data to the specified file. Write will write up to the specified number of bytes, but never more. If the OS cannot write that many bytes, it will write as many as it can. The third argument is modified to reflect the * number of bytes written. It is possible for both bytes to be written and an error to be returned. APR_EINTR is never returned.
      Parameters:
        `thefile` - The file descriptor to write to.
        `buf` - The direct Byte buffer which contains the data.
        `offset` - Start offset in buf
        `nbytes` - The number of bytes to write
      Returns:
        The number of bytes written.

    - #### writeFull

          public static int writeFull(long thefile,
                                      byte[] buf,
                                      int offset,
                                      int nbytes)

      Write data to the specified file, ensuring that all of the data is written before returning. Write will write up to the specified number of bytes, but never more. If the OS cannot write that many bytes, the process/thread will block until they can be written. Exceptional error such as "out of space" or "pipe closed" will terminate with an error. It is possible for both bytes to be written and an error to be returned. And if *bytes_written is less than nbytes, an accompanying error is _always_ returned. APR_EINTR is never returned.
      Parameters:
        `thefile` - The file descriptor to write to.
        `buf` - The buffer which contains the data.
        `offset` - Start offset in buf
        `nbytes` - The number of bytes to write
      Returns:
        The number of bytes written.

    - #### writeFullb

          public static int writeFullb(long thefile,
                                       ByteBuffer buf,
                                       int offset,
                                       int nbytes)

      Write data to the specified file, ensuring that all of the data is written before returning. Write will write up to the specified number of bytes, but never more. If the OS cannot write that many bytes, the process/thread will block until they can be written. Exceptional error such as "out of space" or "pipe closed" will terminate with an error. It is possible for both bytes to be written and an error to be returned. And if *bytes_written is less than nbytes, an accompanying error is _always_ returned. APR_EINTR is never returned.
      Parameters:
        `thefile` - The file descriptor to write to.
        `buf` - The direct ByteBuffer which contains the data.
        `offset` - Start offset in buf
        `nbytes` - The number of bytes to write.
      Returns:
        The number of bytes written.

    - #### writev

          public static int writev(long thefile,
                                   byte[][] vec)

      Write data from array of byte arrays to the specified file. It is possible for both bytes to be written and an error to be returned. APR_EINTR is never returned. apr_file_writev is available even if the underlying operating system doesn't provide writev().
      Parameters:
        `thefile` - The file descriptor to write to.
        `vec` - The array from which to get the data to write to the file.
      Returns:
        The number of bytes written.

    - #### writevFull

          public static int writevFull(long thefile,
                                       byte[][] vec)

      Write data from array of byte arrays to the specified file, ensuring that all of the data is written before returning. writevFull is available even if the underlying operating system doesn't provide writev().
      Parameters:
        `thefile` - The file descriptor to write to.
        `vec` - The array from which to get the data to write to the file.
      Returns:
        The number of bytes written.

    - #### read

          public static int read(long thefile,
                                 byte[] buf,
                                 int offset,
                                 int nbytes)

      Read data from the specified file. apr_file_read will read up to the specified number of bytes, but never more. If there isn't enough data to fill that number of bytes, all of the available data is read. The third argument is modified to reflect the number of bytes read. If a char was put back into the stream via ungetc, it will be the first character returned. It is not possible for both bytes to be read and an APR_EOF or other error to be returned. APR_EINTR is never returned.
      Parameters:
        `thefile` - The file descriptor to read from.
        `buf` - The buffer to store the data to.
        `offset` - Start offset in buf
        `nbytes` - The number of bytes to read
      Returns:
        the number of bytes read.

    - #### readb

          public static int readb(long thefile,
                                  ByteBuffer buf,
                                  int offset,
                                  int nbytes)

      Read data from the specified file. apr_file_read will read up to the specified number of bytes, but never more. If there isn't enough data to fill that number of bytes, all of the available data is read. The third argument is modified to reflect the number of bytes read. If a char was put back into the stream via ungetc, it will be the first character returned. It is not possible for both bytes to be read and an APR_EOF or other error to be returned. APR_EINTR is never returned.
      Parameters:
        `thefile` - The file descriptor to read from.
        `buf` - The direct Byte buffer to store the data to.
        `offset` - Start offset in buf
        `nbytes` - The number of bytes to read.
      Returns:
        the number of bytes read.

    - #### readFull

          public static int readFull(long thefile,
                                     byte[] buf,
                                     int offset,
                                     int nbytes)

      Read data from the specified file, ensuring that the buffer is filled before returning. Read will read up to the specified number of bytes, but never more. If there isn't enough data to fill that number of bytes, then the process/thread will block until it is available or EOF is reached. If a char was put back into the stream via ungetc, it will be the first character returned. It is possible for both bytes to be read and an error to be returned. And if *bytes_read is less than nbytes, an accompanying error is _always_ returned. APR_EINTR is never returned.
      Parameters:
        `thefile` - The file descriptor to read from.
        `buf` - The buffer to store the data to.
        `offset` - Start offset in buf
        `nbytes` - The number of bytes to read
      Returns:
        the number of bytes read.

    - #### readFullb

          public static int readFullb(long thefile,
                                      ByteBuffer buf,
                                      int offset,
                                      int nbytes)

      Read data from the specified file, ensuring that the buffer is filled before returning. Read will read up to the specified number of bytes, but never more. If there isn't enough data to fill that number of bytes, then the process/thread will block until it is available or EOF is reached. If a char was put back into the stream via ungetc, it will be the first character returned. It is possible for both bytes to be read and an error to be returned. And if *bytes_read is less than nbytes, an accompanying error is _always_ returned. APR_EINTR is never returned.
      Parameters:
        `thefile` - The file descriptor to read from.
        `buf` - The direct ByteBuffer to store the data to.
        `offset` - Start offset in buf
        `nbytes` - The number of bytes to read.
      Returns:
        the number of bytes read.

    - #### gets

          public static int gets(byte[] buf,
                                 int offset,
                                 long thefile)

      Read a string from the specified file. The buffer will be NUL-terminated if any characters are stored.
      Parameters:
        `buf` - The buffer to store the string in.
        `offset` - Start offset in buf
        `thefile` - The file descriptor to read from
      Returns:
        the number of bytes read.

    - #### getc

          public static int getc(long thefile)
                          throws Error

      Read a character from the specified file.
      Parameters:
        `thefile` - The file descriptor to read from
      Returns:
        The read character
      Throws:
        `Error` - If an error occurs reading the file

    - #### eof

          public static int eof(long fptr)

      Are we at the end of the file
      Parameters:
        `fptr` - The apr file we are testing.
      Returns:
        Returns APR_EOF if we are at the end of file, APR_SUCCESS otherwise.

    - #### nameGet

          public static String nameGet(long thefile)

      Return the file name of the current file.
      Parameters:
        `thefile` - The currently open file.
      Returns:
        the name

    - #### permsSet

          public static int permsSet(String fname,
                                     int perms)

      Set the specified file's permission bits.
      Warning : Some platforms may not be able to apply all of the available permission bits; APR_INCOMPLETE will be returned if some permissions are specified which could not be set.
      Warning : Platforms which do not implement this feature will return APR_ENOTIMPL.
      Parameters:
        `fname` - The file (name) to apply the permissions to.
        `perms` - The permission bits to apply to the file.
      Returns:
        the operation status

    - #### attrsSet

          public static int attrsSet(String fname,
                                     int attributes,
                                     int mask,
                                     long pool)

      Set attributes of the specified file. This function should be used in preference to explicit manipulation of the file permissions, because the operations to provide these attributes are platform specific and may involve more than simply setting permission bits.
      Warning : Platforms which do not implement this feature will return APR_ENOTIMPL.
      Parameters:
        `fname` - The full path to the file (using / on all systems)
        `attributes` - Or'd combination of

                        APR_FILE_ATTR_READONLY   - make the file readonly
                        APR_FILE_ATTR_EXECUTABLE - make the file executable
                        APR_FILE_ATTR_HIDDEN     - make the file hidden

        `mask` - Mask of valid bits in attributes.
        `pool` - the pool to use.
      Returns:
        the operation status

    - #### mtimeSet

          public static int mtimeSet(String fname,
                                     long mtime,
                                     long pool)

      Set the mtime of the specified file.
      Warning : Platforms which do not implement this feature will return APR_ENOTIMPL.
      Parameters:
        `fname` - The full path to the file (using / on all systems)
        `mtime` - The mtime to apply to the file in microseconds
        `pool` - The pool to use.
      Returns:
        the operation status

    - #### lock

          public static int lock(long thefile,
                                 int type)

      Establish a lock on the specified, open file. The lock may be advisory or mandatory, at the discretion of the platform. The lock applies to the file as a whole, rather than a specific range. Locks are established on a per-thread/process basis; a second lock by the same thread will not block.
      Parameters:
        `thefile` - The file to lock.
        `type` - The type of lock to establish on the file.
      Returns:
        the operation status

    - #### unlock

          public static int unlock(long thefile)

      Remove any outstanding locks on the file.
      Parameters:
        `thefile` - The file to unlock.
      Returns:
        the operation status

    - #### flagsGet

          public static int flagsGet(long file)

      Retrieve the flags that were passed into apr_file_open() when the file was opened.
      Parameters:
        `file` - The file to retrieve flags.
      Returns:
        the flags

    - #### trunc

          public static int trunc(long fp,
                                  long offset)

      Truncate the file's length to the specified offset
      Parameters:
        `fp` - The file to truncate
        `offset` - The offset to truncate to.
      Returns:
        the operation status

    - #### pipeCreate

          public static int pipeCreate(long[] io,
                                       long pool)

      Create an anonymous pipe.
      Parameters:
        `io` - io[0] The file descriptors to use as input to the pipe. io[1] The file descriptor to use as output from the pipe.
        `pool` - The pool to operate on.
      Returns:
        the operation status

    - #### pipeTimeoutGet

          public static long pipeTimeoutGet(long thepipe)
                                     throws Error

      Get the timeout value for a pipe or manipulate the blocking state.
      Parameters:
        `thepipe` - The pipe we are getting a timeout for.
      Returns:
        The current timeout value in microseconds.
      Throws:
        `Error` - If an error occurs

    - #### pipeTimeoutSet

          public static int pipeTimeoutSet(long thepipe,
                                           long timeout)

      Set the timeout value for a pipe or manipulate the blocking state.
      Parameters:
        `thepipe` - The pipe we are setting a timeout on.
        `timeout` - The timeout value in microseconds. Values < 0 mean wait forever, 0 means do not wait at all.
      Returns:
        the operation status

    - #### dup

          public static long dup(long newFile,
                                 long oldFile,
                                 long pool)
                          throws Error

      Duplicate the specified file descriptor.
      Parameters:
        `newFile` - The file to duplicate. newFile must point to a valid apr_file_t, or point to NULL.
        `oldFile` - The file to duplicate.
        `pool` - The pool to use for the new file.
      Returns:
        Duplicated file structure.
      Throws:
        `Error` - If an error occurs reading the file descriptor

    - #### dup2

          public static int dup2(long newFile,
                                 long oldFile,
                                 long pool)

      Duplicate the specified file descriptor and close the original.
      Parameters:
        `newFile` - The old file that is to be closed and reused. newFile MUST point at a valid apr_file_t. It cannot be NULL.
        `oldFile` - The file to duplicate.
        `pool` - The pool to use for the new file.
      Returns:
        the operation status

    - #### stat

          public static int stat(FileInfo finfo,
                                 String fname,
                                 int wanted,
                                 long pool)

      Get the specified file's stats. The file is specified by filename, instead of using a pre-opened file.
      Parameters:
        `finfo` - Where to store the information about the file, which is never touched if the call fails.
        `fname` - The name of the file to stat.
        `wanted` - The desired apr_finfo_t fields, as a bit flag of APR_FINFO_ values
        `pool` - the pool to use to allocate the new file.
      Returns:
        the operation status

    - #### getStat

          public static FileInfo getStat(String fname,
                                         int wanted,
                                         long pool)

      Get the specified file's stats. The file is specified by filename, instead of using a pre-opened file.
      Parameters:
        `fname` - The name of the file to stat.
        `wanted` - The desired apr_finfo_t fields, as a bit flag of APR_FINFO_ values
        `pool` - the pool to use to allocate the new file.
      Returns:
        FileInfo object.

    - #### infoGet

          public static int infoGet(FileInfo finfo,
                                    int wanted,
                                    long thefile)

      Get the specified file's stats.
      Parameters:
        `finfo` - Where to store the information about the file.
        `wanted` - The desired apr_finfo_t fields, as a bit flag of APR_FINFO_ values
        `thefile` - The file to get information about.
      Returns:
        the operation status

    - #### getInfo

          public static FileInfo getInfo(int wanted,
                                         long thefile)

      Get the specified file's stats.
      Parameters:
        `wanted` - The desired apr_finfo_t fields, as a bit flag of APR_FINFO_ values
        `thefile` - The file to get information about.
      Returns:
        FileInfo object.

Copyright © 2000-2020 Apache Software Foundation. All Rights Reserved.