| <!-- ##### SECTION Title ##### --> |
| File Utilities |
| |
| <!-- ##### SECTION Short_Description ##### --> |
| various file-related functions. |
| |
| <!-- ##### SECTION Long_Description ##### --> |
| <para> |
| There is a group of functions which wrap the common POSIX functions |
| dealing with filenames (g_open(), g_rename(), g_mkdir(), g_stat(), |
| g_unlink(), g_remove(), g_fopen(), g_freopen()). The point of these |
| wrappers is to make it possible to handle file names with any Unicode |
| characters in them on Windows without having to use ifdefs and the |
| wide character API in the application code. |
| </para> |
| <para> |
| The pathname argument should be in the GLib file name encoding. On |
| POSIX this is the actual on-disk encoding which might correspond to |
| the locale settings of the process (or the |
| <envar>G_FILENAME_ENCODING</envar> environment variable), or not. |
| </para> |
| <para> |
| On Windows the GLib file name encoding is UTF-8. Note that the |
| Microsoft C library does not use UTF-8, but has separate APIs for |
| current system code page and wide characters (UTF-16). The GLib |
| wrappers call the wide character API if present (on modern Windows |
| systems), otherwise convert to/from the system code page. |
| </para> |
| |
| <para> |
| Another group of functions allows to open and read directories |
| in the GLib file name encoding. These are g_dir_open(), |
| g_dir_read_name(), g_dir_rewind(), g_dir_close(). |
| </para> |
| |
| <!-- ##### SECTION See_Also ##### --> |
| <para> |
| |
| </para> |
| |
| <!-- ##### ENUM GFileError ##### --> |
| <para> |
| Values corresponding to <literal>errno</literal> codes returned from file operations |
| on UNIX. Unlike <literal>errno</literal> codes, #GFileError values are available on |
| all systems, even Windows. The exact meaning of each code depends on what |
| sort of file operation you were performing; the UNIX documentation |
| gives more details. The following error code descriptions come |
| from the GNU C Library manual, and are under the copyright |
| of that manual. |
| </para> |
| |
| <para> |
| It's not very portable to make detailed assumptions about exactly |
| which errors will be returned from a given operation. Some errors |
| don't occur on some systems, etc., sometimes there are subtle |
| differences in when a system will report a given error, etc. |
| </para> |
| |
| @G_FILE_ERROR_EXIST: Operation not permitted; only the owner of the |
| file (or other resource) or processes with special privileges can |
| perform the operation. |
| @G_FILE_ERROR_ISDIR: File is a directory; you cannot open a directory |
| for writing, or create or remove hard links to it. |
| @G_FILE_ERROR_ACCES: Permission denied; the file permissions do not |
| allow the attempted operation. |
| @G_FILE_ERROR_NAMETOOLONG: Filename too long. |
| @G_FILE_ERROR_NOENT: No such file or directory. This is a "file |
| doesn't exist" error for ordinary files that are referenced in |
| contexts where they are expected to already exist. |
| @G_FILE_ERROR_NOTDIR: A file that isn't a directory was specified when |
| a directory is required. |
| @G_FILE_ERROR_NXIO: No such device or address. The system tried to |
| use the device represented by a file you specified, and it |
| couldn't find the device. This can mean that the device file was |
| installed incorrectly, or that the physical device is missing or |
| not correctly attached to the computer. |
| @G_FILE_ERROR_NODEV: This file is of a type that doesn't support |
| mapping. |
| @G_FILE_ERROR_ROFS: The directory containing the new link can't be |
| modified because it's on a read-only file system. |
| @G_FILE_ERROR_TXTBSY: Text file busy. |
| @G_FILE_ERROR_FAULT: You passed in a pointer to bad memory. |
| (GLib won't reliably return this, don't pass in pointers to bad |
| memory.) |
| @G_FILE_ERROR_LOOP: Too many levels of symbolic links were encountered |
| in looking up a file name. This often indicates a cycle of symbolic |
| links. |
| @G_FILE_ERROR_NOSPC: No space left on device; write operation on a |
| file failed because the disk is full. |
| @G_FILE_ERROR_NOMEM: No memory available. The system cannot allocate |
| more virtual memory because its capacity is full. |
| @G_FILE_ERROR_MFILE: The current process has too many files open and |
| can't open any more. Duplicate descriptors do count toward this |
| limit. |
| @G_FILE_ERROR_NFILE: There are too many distinct file openings in the |
| entire system. |
| @G_FILE_ERROR_BADF: Bad file descriptor; for example, I/O on a |
| descriptor that has been closed or reading from a descriptor open |
| only for writing (or vice versa). |
| @G_FILE_ERROR_INVAL: Invalid argument. This is used to indicate |
| various kinds of problems with passing the wrong argument to a |
| library function. |
| @G_FILE_ERROR_PIPE: Broken pipe; there is no process reading from the |
| other end of a pipe. Every library function that returns this |
| error code also generates a `SIGPIPE' signal; this signal |
| terminates the program if not handled or blocked. Thus, your |
| program will never actually see this code unless it has handled or |
| blocked `SIGPIPE'. |
| @G_FILE_ERROR_AGAIN: Resource temporarily unavailable; the call might |
| work if you try again later. |
| @G_FILE_ERROR_INTR: Interrupted function call; an asynchronous signal |
| occurred and prevented completion of the call. When this |
| happens, you should try the call again. |
| @G_FILE_ERROR_IO: Input/output error; usually used for physical read |
| or write errors. i.e. the disk or other physical device hardware |
| is returning errors. |
| @G_FILE_ERROR_PERM: Operation not permitted; only the owner of the |
| file (or other resource) or processes with special privileges can |
| perform the operation. |
| @G_FILE_ERROR_NOSYS: Function not implemented; this indicates that the |
| system is missing some functionality. |
| @G_FILE_ERROR_FAILED: Does not correspond to a UNIX error code; this |
| is the standard "failed for unspecified reason" error code present in |
| all #GError error code enumerations. Returned if no specific |
| code applies. |
| |
| <!-- ##### MACRO G_FILE_ERROR ##### --> |
| <para> |
| Error domain for file operations. Errors in this domain will |
| be from the #GFileError enumeration. See #GError for information on |
| error domains. |
| </para> |
| |
| |
| |
| <!-- ##### ENUM GFileTest ##### --> |
| <para> |
| A test to perform on a file using g_file_test(). |
| </para> |
| |
| @G_FILE_TEST_IS_REGULAR: %TRUE if the file is a regular file (not a symlink or directory) |
| @G_FILE_TEST_IS_SYMLINK: %TRUE if the file is a symlink. |
| @G_FILE_TEST_IS_DIR: %TRUE if the file is a directory. |
| @G_FILE_TEST_IS_EXECUTABLE: %TRUE if the file is executable. |
| @G_FILE_TEST_EXISTS: %TRUE if the file exists. It may or may not be a regular file. |
| |
| <!-- ##### FUNCTION g_file_error_from_errno ##### --> |
| <para> |
| |
| </para> |
| |
| @err_no: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_file_get_contents ##### --> |
| <para> |
| |
| </para> |
| |
| @filename: |
| @contents: |
| @length: |
| @error: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_file_test ##### --> |
| <para> |
| |
| </para> |
| |
| @filename: |
| @test: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_mkstemp ##### --> |
| <para> |
| |
| </para> |
| |
| @tmpl: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_file_open_tmp ##### --> |
| <para> |
| |
| </para> |
| |
| @tmpl: |
| @name_used: |
| @error: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_file_read_link ##### --> |
| <para> |
| |
| </para> |
| |
| @filename: |
| @error: |
| @Returns: |
| |
| |
| <!-- ##### STRUCT GDir ##### --> |
| <para> |
| An opaque structure representing an opened directory. |
| </para> |
| |
| |
| <!-- ##### FUNCTION g_dir_open ##### --> |
| <para> |
| |
| </para> |
| |
| @path: |
| @flags: |
| @error: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_dir_read_name ##### --> |
| <para> |
| |
| </para> |
| |
| @dir: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_dir_rewind ##### --> |
| <para> |
| |
| </para> |
| |
| @dir: |
| |
| |
| <!-- ##### FUNCTION g_dir_close ##### --> |
| <para> |
| |
| </para> |
| |
| @dir: |
| |
| |
| <!-- ##### FUNCTION g_open ##### --> |
| <para> |
| |
| </para> |
| |
| @filename: |
| @flags: |
| @mode: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_rename ##### --> |
| <para> |
| |
| </para> |
| |
| @oldfilename: |
| @newfilename: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_mkdir ##### --> |
| <para> |
| |
| </para> |
| |
| @filename: |
| @mode: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_stat ##### --> |
| <para> |
| |
| </para> |
| |
| @filename: |
| @buf: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_lstat ##### --> |
| <para> |
| |
| </para> |
| |
| @filename: |
| @buf: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_unlink ##### --> |
| <para> |
| |
| </para> |
| |
| @filename: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_remove ##### --> |
| <para> |
| |
| </para> |
| |
| @filename: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_rmdir ##### --> |
| <para> |
| |
| </para> |
| |
| @filename: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_fopen ##### --> |
| <para> |
| |
| </para> |
| |
| @filename: |
| @mode: |
| @Returns: |
| |
| |
| <!-- ##### FUNCTION g_freopen ##### --> |
| <para> |
| |
| </para> |
| |
| @filename: |
| @mode: |
| @stream: |
| @Returns: |
| |
| |