diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2021-10-29 10:24:23 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2021-10-29 10:24:23 +0900 |
commit | 486fac2fa4f82ab3589344a5301732d80e4dd1d0 (patch) | |
tree | e4f392f6538b3e68d67a0190463e33f36da02eb3 /gio/gfile.c | |
parent | a894679c46e9808c654ba1c203b75f6b64bd9716 (diff) | |
download | glib-486fac2fa4f82ab3589344a5301732d80e4dd1d0.tar.gz glib-486fac2fa4f82ab3589344a5301732d80e4dd1d0.tar.bz2 glib-486fac2fa4f82ab3589344a5301732d80e4dd1d0.zip |
Imported Upstream version 2.65.3upstream/2.65.3
Diffstat (limited to 'gio/gfile.c')
-rw-r--r-- | gio/gfile.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gio/gfile.c b/gio/gfile.c index a8d12aa2c..533efa7df 100644 --- a/gio/gfile.c +++ b/gio/gfile.c @@ -4027,6 +4027,21 @@ g_file_make_symbolic_link (GFile *file, * Deletes a file. If the @file is a directory, it will only be * deleted if it is empty. This has the same semantics as g_unlink(). * + * If @file doesn’t exist, %G_IO_ERROR_NOT_FOUND will be returned. This allows + * for deletion to be implemented avoiding + * [time-of-check to time-of-use races](https://en.wikipedia.org/wiki/Time-of-check_to_time-of-use): + * |[ + * g_autoptr(GError) local_error = NULL; + * if (!g_file_delete (my_file, my_cancellable, &local_error) && + * !g_error_matches (local_error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND)) + * { + * // deletion failed for some reason other than the file not existing: + * // so report the error + * g_warning ("Failed to delete %s: %s", + * g_file_peek_path (my_file), local_error->message); + * } + * ]| + * * If @cancellable is not %NULL, then the operation can be cancelled by * triggering the cancellable object from another thread. If the operation * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. |