Re: [Vala] Vala 0.11.6 How do I copy a file using GInputStream and GOutputStream?
- From: Graham Whelan <gawhelan gmail com>
- To: Jürg Billeter <j bitron ch>
- Cc: vala-list gnome org
- Subject: Re: [Vala] Vala 0.11.6 How do I copy a file using GInputStream and GOutputStream?
- Date: Tue, 1 Mar 2011 19:58:32 +0000
On 1 March 2011 18:29, Jürg Billeter <j bitron ch> wrote:
On Tue, 2011-03-01 at 18:21 +0000, Graham Whelan wrote:
I'm trying to copy a file using GLib.InputStream and GLib.OutputStream
but the copied file ends up corrupted.
Sample code:
uint8 buffer[4096];
size_t read;
while (true) {
read = input.read (buffer);
if (read > 0) {
output.write (buffer);
This should work with slicing:
output.write (buffer[0:read]);
Jürg
Thanks for the quick response.
I've just tried your suggestion with valac 0.11.5 and 0.11.6 but it
doesn't work. Looking at the generated C code, Vala is still passing
the full length of the array and not the length of the slice.
So:
output.write (buffer[0:read]);
becomes:
g_output_stream_write ((GOutputStream*) output, buffer + 0, (gsize)
4096, NULL, &_inner_error_);
Graham
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]