org.apache.tomcat.jni

Class File

public class File extends Object

File

Version: $Revision: 832187 $, $Date: 2009-11-03 00:23:20 +0100 (Tue, 03 Nov 2009) $

Author: Mladen Turk

Field Summary
static intAPR_BLK
a block device
static intAPR_CHR
a character device
static intAPR_CUR
Current
static intAPR_DIR
a directory
static intAPR_END
Go to end of file
static intAPR_FILE_ATTR_EXECUTABLE
File is executable
static intAPR_FILE_ATTR_HIDDEN
File is hidden
static intAPR_FILE_ATTR_READONLY
File is read-only
static intAPR_FINFO_ATIME
Creation or inode-changed time
static intAPR_FINFO_CSIZE
Size of the file
static intAPR_FINFO_CTIME
Modification Time
static intAPR_FINFO_DEV
Storage size consumed by the file
static intAPR_FINFO_DIRENT
an atomic unix apr_stat()
static intAPR_FINFO_GPROT
User protection bits
static intAPR_FINFO_GROUP
User
static intAPR_FINFO_ICASE
World protection bits
static intAPR_FINFO_IDENT
type, mtime, ctime, atime, size
static intAPR_FINFO_INODE
Device
static intAPR_FINFO_LINK
use OS's default permissions
static intAPR_FINFO_MIN
->name in proper case
static intAPR_FINFO_MTIME
Stat the link not the file itself if it is a link
static intAPR_FINFO_NAME
if dev is case insensitive
static intAPR_FINFO_NLINK
Inode
static intAPR_FINFO_NORM
all protections
static intAPR_FINFO_OWNER
dev and inode
static intAPR_FINFO_PROT
user and group
static intAPR_FINFO_SIZE
Access Time
static intAPR_FINFO_TYPE
Number of links
static intAPR_FINFO_UPROT
Group
static intAPR_FINFO_USER
Type
static intAPR_FINFO_WPROT
Group protection bits
static intAPR_FLOCK_EXCLUSIVE
Exclusive lock.
static intAPR_FLOCK_NONBLOCK
do not block while acquiring the file lock
static intAPR_FLOCK_SHARED
Shared lock.
static intAPR_FLOCK_TYPEMASK
mask to extract lock type
static intAPR_FOPEN_APPEND
Append to the end of the file
static intAPR_FOPEN_BINARY
Open the file in binary mode
static intAPR_FOPEN_BUFFERED
Open the file for buffered I/O
static intAPR_FOPEN_CREATE
Create the file if not there
static intAPR_FOPEN_DELONCLOSE
Delete the file after close
static intAPR_FOPEN_EXCL
Open should fail if APR_CREATE and file exists.
static intAPR_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 intAPR_FOPEN_NOCLEANUP
Do not register a cleanup when the file is opened
static intAPR_FOPEN_READ
Open the file for reading
static intAPR_FOPEN_SENDFILE_ENABLED
Advisory flag that this file should support apr_socket_sendfile operation
static intAPR_FOPEN_SHARELOCK
Platform dependent support for higher level locked read/write access to support writes across process/machines
static intAPR_FOPEN_TRUNCATE
Open the file and truncate to 0 length
static intAPR_FOPEN_WRITE
Open the file for writing
static intAPR_FOPEN_XTHREAD
Platform dependent tag to open the file for use across multiple threads
static intAPR_FPROT_GEXECUTE
Write by group
static intAPR_FPROT_GREAD
Set group id
static intAPR_FPROT_GSETID
Execute by user
static intAPR_FPROT_GWRITE
Read by group
static intAPR_FPROT_OS_DEFAULT
Execute by others
static intAPR_FPROT_UEXECUTE
Write by user
static intAPR_FPROT_UREAD
Set user id
static intAPR_FPROT_USETID
static intAPR_FPROT_UWRITE
Read by user
static intAPR_FPROT_WEXECUTE
Write by others
static intAPR_FPROT_WREAD
Sticky bit
static intAPR_FPROT_WSTICKY
Execute by group
static intAPR_FPROT_WWRITE
Read by others
static intAPR_LNK
a symbolic link
static intAPR_NOFILE
no file type determined
static intAPR_PIPE
a FIFO / pipe
static intAPR_REG
a regular file
static intAPR_SET
Set the file position
static intAPR_SOCK
a [unix domain] socket
static intAPR_UNKFILE
a file of some other unknown type
Method Summary
static intappend(String fromPath, String toPath, int perms, long pool)
Append the specified file to another file.
static intattrsSet(String fname, int attributes, int mask, long pool)
Set attributes of the specified file.
static intclose(long file)
Close the specified file.
static intcopy(String fromPath, String toPath, int perms, long pool)
Copy the specified file to another file.
static longdup(long newFile, long oldFile, long pool)
Duplicate the specified file descriptor.
static intdup2(long newFile, long oldFile, long pool)
Duplicate the specified file descriptor and close the original.
static inteof(long fptr)
Are we at the end of the file
static intflagsGet(long file)
Retrieve the flags that were passed into apr_file_open() when the file was opened.
static intflush(long thefile)
Flush the file's buffer.
static intgetc(long thefile)
Read a character from the specified file.
static FileInfogetInfo(int wanted, long thefile)
Get the specified file's stats.
static intgets(byte[] buf, int offset, long thefile)
Read a string from the specified file.
static FileInfogetStat(String fname, int wanted, long pool)
Get the specified file's stats.
static intinfoGet(FileInfo finfo, int wanted, long thefile)
Get the specified file's stats.
static intlock(long thefile, int type)
Establish a lock on the specified, open file.
static longmktemp(String templ, int flags, long pool)
Open a temporary file
static intmtimeSet(String fname, long mtime, long pool)
Set the mtime of the specified file.
static StringnameGet(long thefile)
return the file name of the current file.
static longopen(String fname, int flag, int perm, long pool)
Open the specified file.
static intpermsSet(String fname, int perms)
Set the specified file's permission bits.
static intpipeCreate(long[] io, long pool)
Create an anonymous pipe.
static longpipeTimeoutGet(long thepipe)
Get the timeout value for a pipe or manipulate the blocking state.
static intpipeTimeoutSet(long thepipe, long timeout)
Set the timeout value for a pipe or manipulate the blocking state.
static intputc(byte ch, long thefile)
Write a character into the specified file.
static intputs(byte[] str, long thefile)
Write the string into the specified file.
static intread(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.
static intreadb(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.
static intreadFull(long thefile, byte[] buf, int offset, int nbytes)
Read data from the specified file, ensuring that the buffer is filled before returning.
static intreadFullb(long thefile, ByteBuffer buf, int offset, int nbytes)
Read data from the specified file, ensuring that the buffer is filled before returning.
static intremove(String path, long pool)
Delete the specified file.
static intrename(String fromPath, String toPath, long pool)
Rename the specified file.
static longseek(long thefile, int where, long offset)
Move the read/write file offset to a specified byte within a file.
static intstat(FileInfo finfo, String fname, int wanted, long pool)
Get the specified file's stats.
static inttrunc(long fp, long offset)
Truncate the file's length to the specified offset
static intungetc(byte ch, long thefile)
Put a character back onto a specified stream.
static intunlock(long thefile)
Remove any outstanding locks on the file.
static intwrite(long thefile, byte[] buf, int offset, int nbytes)
Write data to the specified file.
static intwriteb(long thefile, ByteBuffer buf, int offset, int nbytes)
Write data to the specified file.
static intwriteFull(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 intwriteFullb(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 intwritev(long thefile, byte[][] vec)
Write data from aray of byte arrays to the specified file.
static intwritevFull(long thefile, byte[][] vec)
Write data from aray 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().

Field Detail

APR_BLK

public static final int APR_BLK
a block device

APR_CHR

public static final int APR_CHR
a character device

APR_CUR

public static final int APR_CUR
Current

APR_DIR

public static final int APR_DIR
a directory

APR_END

public static final int APR_END
Go to end of file

APR_FILE_ATTR_EXECUTABLE

public static final int APR_FILE_ATTR_EXECUTABLE
File is executable

APR_FILE_ATTR_HIDDEN

public static final int APR_FILE_ATTR_HIDDEN
File is hidden

APR_FILE_ATTR_READONLY

public static final int APR_FILE_ATTR_READONLY
File is read-only

APR_FINFO_ATIME

public static final int APR_FINFO_ATIME
Creation or inode-changed time

APR_FINFO_CSIZE

public static final int APR_FINFO_CSIZE
Size of the file

APR_FINFO_CTIME

public static final int APR_FINFO_CTIME
Modification Time

APR_FINFO_DEV

public static final int APR_FINFO_DEV
Storage size consumed by the file

APR_FINFO_DIRENT

public static final int APR_FINFO_DIRENT
an atomic unix apr_stat()

APR_FINFO_GPROT

public static final int APR_FINFO_GPROT
User protection bits

APR_FINFO_GROUP

public static final int APR_FINFO_GROUP
User

APR_FINFO_ICASE

public static final int APR_FINFO_ICASE
World protection bits

APR_FINFO_IDENT

public static final int APR_FINFO_IDENT
type, mtime, ctime, atime, size

APR_FINFO_INODE

public static final int APR_FINFO_INODE
Device

APR_FINFO_LINK

public static final int APR_FINFO_LINK
use OS's default permissions

APR_FINFO_MIN

public static final int APR_FINFO_MIN
->name in proper case

APR_FINFO_MTIME

public static final int APR_FINFO_MTIME
Stat the link not the file itself if it is a link

APR_FINFO_NAME

public static final int APR_FINFO_NAME
if dev is case insensitive

APR_FINFO_NLINK

public static final int APR_FINFO_NLINK
Inode

APR_FINFO_NORM

public static final int APR_FINFO_NORM
all protections

APR_FINFO_OWNER

public static final int APR_FINFO_OWNER
dev and inode

APR_FINFO_PROT

public static final int APR_FINFO_PROT
user and group

APR_FINFO_SIZE

public static final int APR_FINFO_SIZE
Access Time

APR_FINFO_TYPE

public static final int APR_FINFO_TYPE
Number of links

APR_FINFO_UPROT

public static final int APR_FINFO_UPROT
Group

APR_FINFO_USER

public static final int APR_FINFO_USER
Type

APR_FINFO_WPROT

public static final int APR_FINFO_WPROT
Group protection bits

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".

APR_FLOCK_NONBLOCK

public static final int APR_FLOCK_NONBLOCK
do not block while acquiring the file lock

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.

APR_FLOCK_TYPEMASK

public static final int APR_FLOCK_TYPEMASK
mask to extract lock type

APR_FOPEN_APPEND

public static final int APR_FOPEN_APPEND
Append to the end of the file

APR_FOPEN_BINARY

public static final int APR_FOPEN_BINARY
Open the file in binary mode

APR_FOPEN_BUFFERED

public static final int APR_FOPEN_BUFFERED
Open the file for buffered I/O

APR_FOPEN_CREATE

public static final int APR_FOPEN_CREATE
Create the file if not there

APR_FOPEN_DELONCLOSE

public static final int APR_FOPEN_DELONCLOSE
Delete the file after close

APR_FOPEN_EXCL

public static final int APR_FOPEN_EXCL
Open should fail if APR_CREATE and file exists.

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.

APR_FOPEN_NOCLEANUP

public static final int APR_FOPEN_NOCLEANUP
Do not register a cleanup when the file is opened

APR_FOPEN_READ

public static final int APR_FOPEN_READ
Open the file for reading

APR_FOPEN_SENDFILE_ENABLED

public static final int APR_FOPEN_SENDFILE_ENABLED
Advisory flag that this file should support apr_socket_sendfile operation

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

APR_FOPEN_TRUNCATE

public static final int APR_FOPEN_TRUNCATE
Open the file and truncate to 0 length

APR_FOPEN_WRITE

public static final int APR_FOPEN_WRITE
Open the file for writing

APR_FOPEN_XTHREAD

public static final int APR_FOPEN_XTHREAD
Platform dependent tag to open the file for use across multiple threads

APR_FPROT_GEXECUTE

public static final int APR_FPROT_GEXECUTE
Write by group

APR_FPROT_GREAD

public static final int APR_FPROT_GREAD
Set group id

APR_FPROT_GSETID

public static final int APR_FPROT_GSETID
Execute by user

APR_FPROT_GWRITE

public static final int APR_FPROT_GWRITE
Read by group

APR_FPROT_OS_DEFAULT

public static final int APR_FPROT_OS_DEFAULT
Execute by others

APR_FPROT_UEXECUTE

public static final int APR_FPROT_UEXECUTE
Write by user

APR_FPROT_UREAD

public static final int APR_FPROT_UREAD
Set user id

APR_FPROT_USETID

public static final int APR_FPROT_USETID

APR_FPROT_UWRITE

public static final int APR_FPROT_UWRITE
Read by user

APR_FPROT_WEXECUTE

public static final int APR_FPROT_WEXECUTE
Write by others

APR_FPROT_WREAD

public static final int APR_FPROT_WREAD
Sticky bit

APR_FPROT_WSTICKY

public static final int APR_FPROT_WSTICKY
Execute by group

APR_FPROT_WWRITE

public static final int APR_FPROT_WWRITE
Read by others

APR_LNK

public static final int APR_LNK
a symbolic link

APR_NOFILE

public static final int APR_NOFILE
no file type determined

APR_PIPE

public static final int APR_PIPE
a FIFO / pipe

APR_REG

public static final int APR_REG
a regular file

APR_SET

public static final int APR_SET
Set the file position

APR_SOCK

public static final int APR_SOCK
a [unix domain] socket

APR_UNKFILE

public static final int APR_UNKFILE
a file of some other unknown type

Method Detail

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.

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 explict 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.

close

public static int close(long file)
Close the specified file.

Parameters: file The file descriptor to close.

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.

dup

public static long dup(long newFile, long oldFile, long pool)
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.

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: Status code.

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.

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 retrive flags.

Returns: the flags

flush

public static int flush(long thefile)
Flush the file's buffer.

Parameters: thefile The file descriptor to flush

getc

public static int getc(long thefile)
Read a character from the specified file.

Parameters: thefile The file descriptor to read from

Returns: The readed character

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.

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

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.

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.

mktemp

public static long mktemp(String templ, int flags, long pool)
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.

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.

nameGet

public static String nameGet(long thefile)
return the file name of the current file.

Parameters: thefile The currently open file.

open

public static long open(String fname, int flag, int perm, long pool)
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.

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.

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.

pipeTimeoutGet

public static long pipeTimeoutGet(long thepipe)
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.

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.

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

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

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 (-1) for full array.

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 (-1) for full array.

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.

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.

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.

seek

public static long seek(long thefile, int where, long offset)
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.

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.

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.

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

unlock

public static int unlock(long thefile)
Remove any outstanding locks on the file.

Parameters: thefile The file to unlock.

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; (-1) for full array.

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; (-1) for full array.

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 aray 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 aray 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.

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