## GIOError GIOError — Error helper functions |

## Functions

GIOErrorEnum | g_io_error_from_errno ()
GIOErrorEnum | g_io_error_from_win32_error ()

## Types and Values

#define | G_IO_ERROR
enum | GIOErrorEnum

## Includes

    #include <gio/gio.h>

## Description

Contains helper functions for reporting errors to the user.

## Functions

### g_io_error_from_errno ()

    GIOErrorEnum
    g_io_error_from_errno (gint err_no);

Converts errno.h error codes into GIO error codes. The fallback value `G_IO_ERROR_FAILED` is returned for error codes not currently handled (but note that future GLib releases may return a more specific value instead).

As `errno` is global and may be modified by intermediate function calls, you should save its value as soon as the call which sets it

#### Parameters

err_no | Error number as defined in errno.h. |

#### Returns

GIOErrorEnum value for the given errno.h error number.

### g_io_error_from_win32_error ()

    GIOErrorEnum
    g_io_error_from_win32_error (gint error_code);

Converts some common error codes (as returned from `GetLastError()` or `WSAGetLastError()`) into GIO error codes. The fallback value `G_IO_ERROR_FAILED` is returned for error codes not currently handled (but note that future GLib releases may return a more specific value instead).

You can use `g_win32_error_message()` to get a localized string corresponding to `error_code` . (But note that unlike `g_strerror()`, `g_win32_error_message()` returns a string that must be freed.)

#### Parameters

error_code | Windows error number. |

#### Returns

GIOErrorEnum value for the given error number.

Since: 2.26

## Types and Values

### G_IO_ERROR

    #define G_IO_ERROR g_io_error_quark()

Error domain for GIO. Errors in this domain will be from the GIOErrorEnum enumeration. See GError for more information on error domains.

### enum GIOErrorEnum

Error codes returned by GIO functions.

Note that this domain may be extended in future GLib releases. In general, new error codes either only apply to new APIs, or else replace `G_IO_ERROR_FAILED` in cases that were not explicitly distinguished before. You should therefore avoid writing code like

    1
    2
    3
    4
    5
    if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_FAILED))
      {
        // Assume that this is EPRINTERONFIRE
        ...
      }

but should instead treat all unrecognized error codes the same as G_IO_ERROR_FAILED.

#### Members

G_IO_ERROR_FAILED | Generic error condition for when an operation fails and no more specific GIOErrorEnum value is defined. |
G_IO_ERROR_NOT_FOUND | File not found. |
G_IO_ERROR_EXISTS | File already exists. |
G_IO_ERROR_IS_DIRECTORY | File is a directory. |
G_IO_ERROR_NOT_DIRECTORY | File is not a directory. |
G_IO_ERROR_NOT_EMPTY | File is a directory that isn't empty. |
G_IO_ERROR_NOT_REGULAR_FILE | File is not a regular file. |
G_IO_ERROR_NOT_SYMBOLIC_LINK | File is not a symbolic link. |
G_IO_ERROR_NOT_MOUNTABLE_FILE | File cannot be mounted. |
G_IO_ERROR_FILENAME_TOO_LONG | Filename is too many characters. |
G_IO_ERROR_INVALID_FILENAME | Filename is invalid or contains invalid characters. |
G_IO_ERROR_TOO_MANY_LINKS | File contains too many symbolic links. |
G_IO_ERROR_NO_SPACE | No space left on drive. |
G_IO_ERROR_INVALID_ARGUMENT | Invalid argument. |
G_IO_ERROR_PERMISSION_DENIED | Permission denied. |
G_IO_ERROR_NOT_SUPPORTED | Operation (or one of its parameters) not supported |
G_IO_ERROR_NOT_MOUNTED | File isn't mounted. |
G_IO_ERROR_ALREADY_MOUNTED | File is already mounted. |
G_IO_ERROR_CLOSED | File was closed. |
G_IO_ERROR_CANCELLED | Operation was cancelled. See GCancellable. |
G_IO_ERROR_PENDING | Operations are still pending. |
G_IO_ERROR_READ_ONLY | File is read only. |
G_IO_ERROR_CANT_CREATE_BACKUP | Backup couldn't be created. |
G_IO_ERROR_WRONG_ETAG | File's Entity Tag was incorrect. |
G_IO_ERROR_TIMED_OUT | Operation timed out. |
G_IO_ERROR_WOULD_RECURSE | Operation would be recursive. |
G_IO_ERROR_BUSY | File is busy. |
G_IO_ERROR_WOULD_BLOCK | Operation would block. |
G_IO_ERROR_HOST_NOT_FOUND | Host couldn't be found (remote operations). |
G_IO_ERROR_WOULD_MERGE | Operation would merge files. |
G_IO_ERROR_FAILED_HANDLED | Operation failed and a helper program has already interacted with the user. Do not display any error dialog. |
G_IO_ERROR_TOO_MANY_OPEN_FILES | The current process has too many files open and can't open any more. Duplicate descriptors do count toward this limit. Since 2.20 |
G_IO_ERROR_NOT_INITIALIZED | The object has not been initialized. Since 2.22 |
G_IO_ERROR_ADDRESS_IN_USE | The requested address is already in use. Since 2.22 |
G_IO_ERROR_PARTIAL_INPUT | Need more input to finish operation. Since 2.24 |
G_IO_ERROR_INVALID_DATA | The input data was invalid. Since 2.24 |
G_IO_ERROR_DBUS_ERROR | A remote object generated an error that doesn't correspond to a locally registered GError error domain. Use `g_dbus_error_get_remote_error()` to extract the D-Bus error name and `g_dbus_error_strip_remote_error()` to fix up the message so it matches what was received on the wire. Since 2.26. |
G_IO_ERROR_HOST_UNREACHABLE | Host unreachable. Since 2.26 |
G_IO_ERROR_NETWORK_UNREACHABLE | Network unreachable. Since 2.26 |
G_IO_ERROR_CONNECTION_REFUSED | Connection refused. Since 2.26 |
G_IO_ERROR_PROXY_FAILED | Connection to proxy server failed. Since 2.26 |
G_IO_ERROR_PROXY_AUTH_FAILED | Proxy authentication failed. Since 2.26 |
G_IO_ERROR_PROXY_NEED_AUTH | Proxy server needs authentication. Since 2.26 |
G_IO_ERROR_PROXY_NOT_ALLOWED | Proxy connection is not allowed by ruleset. Since 2.26 |
G_IO_ERROR_BROKEN_PIPE | Broken pipe. Since 2.36 |
G_IO_ERROR_CONNECTION_CLOSED | Connection closed by peer. Note that this is the same code as `G_IO_ERROR_BROKEN_PIPE`; before 2.44 some "connection closed" errors returned `G_IO_ERROR_BROKEN_PIPE`, but others returned `G_IO_ERROR_FAILED`. Now they should all return the same value, which has this more logical name. Since 2.44. |
G_IO_ERROR_NOT_CONNECTED | Transport endpoint is not connected. Since 2.44 |
G_IO_ERROR_MESSAGE_TOO_LARGE | Message too large. Since 2.48. |