summaryrefslogtreecommitdiff
path: root/gio/gfile.c
diff options
context:
space:
mode:
authorDongHun Kwak <dh0128.kwak@samsung.com>2021-10-29 10:24:23 +0900
committerDongHun Kwak <dh0128.kwak@samsung.com>2021-10-29 10:24:23 +0900
commit486fac2fa4f82ab3589344a5301732d80e4dd1d0 (patch)
treee4f392f6538b3e68d67a0190463e33f36da02eb3 /gio/gfile.c
parenta894679c46e9808c654ba1c203b75f6b64bd9716 (diff)
downloadglib-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.c15
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.