| typedef struct apr_file_t apr_file_t |
Structure for referencing files.
| typedef apr_uint32_t apr_fileattrs_t |
File attributes
| typedef int apr_seek_where_t |
Type to pass as whence argument to apr_file_seek.
| apr_status_t apr_dir_make | ( | const char * | path, | |
| apr_fileperms_t | perm, | |||
| apr_pool_t * | pool | |||
| ) |
Create a new directory on the file system.
| path | the path for the directory to be created. (use / on all systems) | |
| perm | Permissions for the new direcoty. | |
| pool | the pool to use. |
| apr_status_t apr_dir_make_recursive | ( | const char * | path, | |
| apr_fileperms_t | perm, | |||
| apr_pool_t * | pool | |||
| ) |
Creates a new directory on the file system, but behaves like 'mkdir -p'. Creates intermediate directories as required. No error will be reported if PATH already exists.
| path | the path for the directory to be created. (use / on all systems) | |
| perm | Permissions for the new direcoty. | |
| pool | the pool to use. |
| apr_status_t apr_dir_remove | ( | const char * | path, | |
| apr_pool_t * | pool | |||
| ) |
Remove directory from the file system.
| path | the path for the directory to be removed. (use / on all systems) | |
| pool | the pool to use. |
| apr_status_t apr_file_append | ( | const char * | from_path, | |
| const char * | to_path, | |||
| apr_fileperms_t | perms, | |||
| apr_pool_t * | pool | |||
| ) |
Append the specified file to another file.
| from_path | The full path to the source file (use / on all systems) | |
| to_path | 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. |
| apr_status_t apr_file_attrs_set | ( | const char * | fname, | |
| apr_fileattrs_t | attributes, | |||
| apr_fileattrs_t | attr_mask, | |||
| apr_pool_t * | pool | |||
| ) |
Set attributes of the specified file.
| 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
| |
| attr_mask | Mask of valid bits in attributes. | |
| pool | the pool to use. |
| apr_status_t apr_file_close | ( | apr_file_t * | file | ) |
Close the specified file.
| file | The file descriptor to close. |
| apr_status_t apr_file_copy | ( | const char * | from_path, | |
| const char * | to_path, | |||
| apr_fileperms_t | perms, | |||
| apr_pool_t * | pool | |||
| ) |
Copy the specified file to another file.
| from_path | The full path to the original file (using / on all systems) | |
| to_path | 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. |
| apr_status_t apr_file_data_get | ( | void ** | data, | |
| const char * | key, | |||
| apr_file_t * | file | |||
| ) |
Return the data associated with the current file.
| data | The user data associated with the file. | |
| key | The key to use for retreiving data associated with this file. | |
| file | The currently open file. |
| apr_status_t apr_file_data_set | ( | apr_file_t * | file, | |
| void * | data, | |||
| const char * | key, | |||
| apr_status_t(*)(void *) | cleanup | |||
| ) |
Set the data associated with the current file.
| file | The currently open file. | |
| data | The user data to associate with the file. | |
| key | The key to use for assocaiteing data with the file. | |
| cleanup | The cleanup routine to use when the file is destroyed. |
| apr_status_t apr_file_dup | ( | apr_file_t ** | new_file, | |
| apr_file_t * | old_file, | |||
| apr_pool_t * | p | |||
| ) |
Duplicate the specified file descriptor.
| new_file | The structure to duplicate into. | |
| old_file | The file to duplicate. | |
| p | The pool to use for the new file. |
| apr_status_t apr_file_dup2 | ( | apr_file_t * | new_file, | |
| apr_file_t * | old_file, | |||
| apr_pool_t * | p | |||
| ) |
Duplicate the specified file descriptor and close the original
| new_file | The old file that is to be closed and reused | |
| old_file | The file to duplicate | |
| p | The pool to use for the new file |
| apr_status_t apr_file_eof | ( | apr_file_t * | fptr | ) |
Are we at the end of the file
| fptr | The apr file we are testing. |
| apr_int32_t apr_file_flags_get | ( | apr_file_t * | f | ) |
Retrieve the flags that were passed into apr_file_open() when the file was opened.
| apr_status_t apr_file_flush | ( | apr_file_t * | thefile | ) |
Flush the file's buffer.
| thefile | The file descriptor to flush |
| apr_status_t apr_file_getc | ( | char * | ch, | |
| apr_file_t * | thefile | |||
| ) |
Read a character from the specified file.
| ch | The character to read into | |
| thefile | The file descriptor to read from |
| apr_status_t apr_file_gets | ( | char * | str, | |
| int | len, | |||
| apr_file_t * | thefile | |||
| ) |
Read a string from the specified file.
| str | The buffer to store the string in. | |
| len | The length of the string | |
| thefile | The file descriptor to read from |
| apr_status_t apr_file_info_get | ( | apr_finfo_t * | finfo, | |
| apr_int32_t | wanted, | |||
| apr_file_t * | thefile | |||
| ) |
get the specified file's stats.
| 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. |
| apr_status_t apr_file_inherit_set | ( | apr_file_t * | thefile | ) |
Set a file to be inherited by child processes.
| apr_status_t apr_file_inherit_unset | ( | apr_file_t * | thefile | ) |
Unset a file from being inherited by child processes.
| apr_status_t apr_file_lock | ( | apr_file_t * | 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.
| thefile | The file to lock. | |
| type | The type of lock to establish on the file. |
| apr_status_t apr_file_mktemp | ( | apr_file_t ** | fp, | |
| char * | templ, | |||
| apr_int32_t | flags, | |||
| apr_pool_t * | p | |||
| ) |
Open a temporary file
| fp | The apr file to use as a temporary file. | |
| 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 | |
| p | The pool to allocate the file out of. |
| apr_status_t apr_file_mtime_set | ( | const char * | fname, | |
| apr_time_t | mtime, | |||
| apr_pool_t * | pool | |||
| ) |
Set the mtime of the specified file.
| fname | The full path to the file (using / on all systems) | |
| mtime | The mtime to apply to the file. | |
| pool | The pool to use. |
| apr_status_t apr_file_name_get | ( | const char ** | new_path, | |
| apr_file_t * | thefile | |||
| ) |
return the file name of the current file.
| new_path | The path of the file. | |
| thefile | The currently open file. |
| apr_status_t apr_file_namedpipe_create | ( | const char * | filename, | |
| apr_fileperms_t | perm, | |||
| apr_pool_t * | pool | |||
| ) |
Create a named pipe.
| filename | The filename of the named pipe | |
| perm | The permissions for the newly created pipe. | |
| pool | The pool to operate on. |
| apr_status_t apr_file_open | ( | apr_file_t ** | newf, | |
| const char * | fname, | |||
| apr_int32_t | flag, | |||
| apr_fileperms_t | perm, | |||
| apr_pool_t * | pool | |||
| ) |
Open the specified file.
| newf | The opened file descriptor. | |
| fname | The full path to the file (using / on all systems) | |
| flag | Or'ed value of:
APR_READ open for reading
APR_WRITE open for writing
APR_CREATE create the file if not there
APR_APPEND file ptr is set to end prior to all writes
APR_TRUNCATE set length to zero if file exists
APR_BINARY not a text file (This flag is ignored on
UNIX because it has no meaning)
APR_BUFFERED buffer the data. Default is non-buffered
APR_EXCL return error if APR_CREATE and file exists
APR_DELONCLOSE delete the file after closing.
APR_XTHREAD Platform dependent tag to open the file
for use across multiple threads
APR_SHARELOCK Platform dependent support for higher
level locked read/write access to support
writes across process/machines
APR_FILE_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_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. |
By default, the returned file descriptor will not be inherited by child processes created by apr_proc_create(). This can be changed using apr_file_inherit_set().
| apr_status_t apr_file_open_stderr | ( | apr_file_t ** | thefile, | |
| apr_pool_t * | pool | |||
| ) |
Open standard error as an apr file pointer.
| thefile | The apr file to use as stderr. | |
| pool | The pool to allocate the file out of. |
The other problem is that the C library functions generally work differently on Windows and Unix. So, by using apr_file_open_std* functions, you can get a handle to an APR struct that works with the APR functions which are supposed to work identically on all platforms.
| apr_status_t apr_file_open_stdin | ( | apr_file_t ** | thefile, | |
| apr_pool_t * | pool | |||
| ) |
open standard input as an apr file pointer.
| thefile | The apr file to use as stdin. | |
| pool | The pool to allocate the file out of. |
| apr_status_t apr_file_open_stdout | ( | apr_file_t ** | thefile, | |
| apr_pool_t * | pool | |||
| ) |
open standard output as an apr file pointer.
| thefile | The apr file to use as stdout. | |
| pool | The pool to allocate the file out of. |
| apr_status_t apr_file_perms_set | ( | const char * | fname, | |
| apr_fileperms_t | perms | |||
| ) |
set the specified file's permission bits.
| fname | The file (name) to apply the permissions to. | |
| perms | The permission bits to apply to the file. |
Platforms which do not implement this feature will return APR_ENOTIMPL.
| apr_status_t apr_file_pipe_create | ( | apr_file_t ** | in, | |
| apr_file_t ** | out, | |||
| apr_pool_t * | pool | |||
| ) |
Create an anonymous pipe.
| in | The file descriptor to use as input to the pipe. | |
| out | The file descriptor to use as output from the pipe. | |
| pool | The pool to operate on. |
| apr_status_t apr_file_pipe_timeout_get | ( | apr_file_t * | thepipe, | |
| apr_interval_time_t * | timeout | |||
| ) |
Get the timeout value for a pipe or manipulate the blocking state.
| thepipe | The pipe we are getting a timeout for. | |
| timeout | The current timeout value in microseconds. |
| apr_status_t apr_file_pipe_timeout_set | ( | apr_file_t * | thepipe, | |
| apr_interval_time_t | timeout | |||
| ) |
Set the timeout value for a pipe or manipulate the blocking state.
| 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. |
| apr_pool_t* apr_file_pool_get | ( | const apr_file_t * | thefile | ) |
Get the pool used by the file.
| int apr_file_printf | ( | apr_file_t * | fptr, | |
| const char * | format, | |||
| ... | ||||
| ) |
Write a string to a file using a printf format.
| fptr | The file to write to. | |
| format | The format string | |
| ... | The values to substitute in the format string |
| apr_status_t apr_file_putc | ( | char | ch, | |
| apr_file_t * | thefile | |||
| ) |
Write a character into the specified file.
| ch | The character to write. | |
| thefile | The file descriptor to write to |
| apr_status_t apr_file_puts | ( | const char * | str, | |
| apr_file_t * | thefile | |||
| ) |
Write the string into the specified file.
| str | The string to write. | |
| thefile | The file descriptor to write to |
| apr_status_t apr_file_read | ( | apr_file_t * | thefile, | |
| void * | buf, | |||
| apr_size_t * | nbytes | |||
| ) |
Read data from the specified file.
| thefile | The file descriptor to read from. | |
| buf | The buffer to store the data to. | |
| nbytes | On entry, the number of bytes to read; on exit, the number of bytes read. |
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.
| apr_status_t apr_file_read_full | ( | apr_file_t * | thefile, | |
| void * | buf, | |||
| apr_size_t | nbytes, | |||
| apr_size_t * | bytes_read | |||
| ) |
Read data from the specified file, ensuring that the buffer is filled before returning.
| thefile | The file descriptor to read from. | |
| buf | The buffer to store the data to. | |
| nbytes | The number of bytes to read. | |
| bytes_read | If non-NULL, this will contain the number of bytes read. |
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.
| apr_status_t apr_file_remove | ( | const char * | path, | |
| apr_pool_t * | pool | |||
| ) |
Delete the specified file.
| path | The full path to the file (using / on all systems) | |
| pool | The pool to use. |
| apr_status_t apr_file_rename | ( | const char * | from_path, | |
| const char * | to_path, | |||
| apr_pool_t * | pool | |||
| ) |
Rename the specified file.
| from_path | The full path to the original file (using / on all systems) | |
| to_path | The full path to the new file (using / on all systems) | |
| pool | The pool to use. |
| apr_status_t apr_file_seek | ( | apr_file_t * | thefile, | |
| apr_seek_where_t | where, | |||
| apr_off_t * | offset | |||
| ) |
Move the read/write file offset to a specified byte within a file.
| 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. |
| apr_status_t apr_file_setaside | ( | apr_file_t ** | new_file, | |
| apr_file_t * | old_file, | |||
| apr_pool_t * | p | |||
| ) |
Move the specified file descriptor to a new pool
| new_file | Pointer in which to return the new apr_file_t | |
| old_file | The file to move | |
| p | The pool to which the descriptor is to be moved |
The new pool need not be an ancestor of old_file's pool.
After calling this function, old_file may not be used
| apr_status_t apr_file_trunc | ( | apr_file_t * | fp, | |
| apr_off_t | offset | |||
| ) |
Truncate the file's length to the specified offset
| fp | The file to truncate | |
| offset | The offset to truncate to. |
| apr_status_t apr_file_ungetc | ( | char | ch, | |
| apr_file_t * | thefile | |||
| ) |
Put a character back onto a specified stream.
| ch | The character to write. | |
| thefile | The file descriptor to write to |
| apr_status_t apr_file_unlock | ( | apr_file_t * | thefile | ) |
Remove any outstanding locks on the file.
| thefile | The file to unlock. |
| apr_status_t apr_file_write | ( | apr_file_t * | thefile, | |
| const void * | buf, | |||
| apr_size_t * | nbytes | |||
| ) |
Write data to the specified file.
| thefile | The file descriptor to write to. | |
| buf | The buffer which contains the data. | |
| nbytes | On entry, the number of bytes to write; on exit, 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.
| apr_status_t apr_file_write_full | ( | apr_file_t * | thefile, | |
| const void * | buf, | |||
| apr_size_t | nbytes, | |||
| apr_size_t * | bytes_written | |||
| ) |
Write data to the specified file, ensuring that all of the data is written before returning.
| thefile | The file descriptor to write to. | |
| buf | The buffer which contains the data. | |
| nbytes | The number of bytes to write. | |
| bytes_written | If non-NULL, set to the number of bytes written. |
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.
| apr_status_t apr_file_writev | ( | apr_file_t * | thefile, | |
| const struct iovec * | vec, | |||
| apr_size_t | nvec, | |||
| apr_size_t * | nbytes | |||
| ) |
Write data from iovec array to the specified file.
| thefile | The file descriptor to write to. | |
| vec | The array from which to get the data to write to the file. | |
| nvec | The number of elements in the struct iovec array. This must be smaller than APR_MAX_IOVEC_SIZE. If it isn't, the function will fail with APR_EINVAL. | |
| nbytes | The number of bytes written. |
apr_file_writev is available even if the underlying operating system doesn't provide writev().
| apr_status_t apr_file_writev_full | ( | apr_file_t * | thefile, | |
| const struct iovec * | vec, | |||
| apr_size_t | nvec, | |||
| apr_size_t * | nbytes | |||
| ) |
Write data from iovec array to the specified file, ensuring that all of the data is written before returning.
| thefile | The file descriptor to write to. | |
| vec | The array from which to get the data to write to the file. | |
| nvec | The number of elements in the struct iovec array. This must be smaller than APR_MAX_IOVEC_SIZE. If it isn't, the function will fail with APR_EINVAL. | |
| nbytes | The number of bytes written. |
| apr_status_t apr_temp_dir_get | ( | const char ** | temp_dir, | |
| apr_pool_t * | p | |||
| ) |
Find an existing directory suitable as a temporary storage location.
| temp_dir | The temp directory. | |
| p | The pool to use for any necessary allocations. |
1.5.2