mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-27 07:56:14 +01:00
Merge branch 'file-delete-docs' into 'master'
gfile: Document TOCTTOU avoidance using g_file_delete() See merge request GNOME/glib!1613
This commit is contained in:
commit
e4f4a40fb4
15
gio/gfile.c
15
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
|
* 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().
|
* 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
|
* If @cancellable is not %NULL, then the operation can be cancelled by
|
||||||
* triggering the cancellable object from another thread. If the operation
|
* triggering the cancellable object from another thread. If the operation
|
||||||
* was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
|
* was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
|
||||||
|
Loading…
Reference in New Issue
Block a user