- fd = g_open (filename, O_CREAT | O_APPEND | O_WRONLY | O_BINARY, mode);
- if (fd == -1)
- {
- int errsv = errno;
-
- if (errsv == EINVAL)
- /* This must be an invalid filename, on e.g. FAT */
- g_set_error_literal (error, G_IO_ERROR,
- G_IO_ERROR_INVALID_FILENAME,
- _("Invalid filename"));
- else
- {
- char *display_name = g_filename_display_name (filename);
- g_set_error (error, G_IO_ERROR,
- g_io_error_from_errno (errsv),
- _("Error opening file '%s': %s"),
- display_name, g_strerror (errsv));
- g_free (display_name);
- }
- return NULL;
- }
-
- stream = g_object_new (G_TYPE_LOCAL_FILE_OUTPUT_STREAM, NULL);
- stream->priv->fd = fd;
-
- return G_FILE_OUTPUT_STREAM (stream);
+ return output_stream_open (filename, O_CREAT | O_APPEND | O_WRONLY | O_BINARY, mode,
+ cancellable, error);