Hello List, I'm trying to use fpwrite (from UnixBase). It seems that on my first use it will wrtie the full content of the buffer, however on the second write of the buffer, it will always write a small portion of the buffer no matter the real size of it... On an example that is written in C (that my code is based on), the function always write the full content of the buffer to that device.
here is a small POC of my first attempt: Const BUFFER_LEN = 2048; Buffer : array[0..BUFFER_LEN -1] of smallint; My usage of fpwrite is as follows: read_content := read_content_from....([EMAIL PROTECTED], MAX_BUFFER); while (read_content > 0) do begin write_count := fpwrite(fd, @Buffer[0], buffer_size * sizeof(buffertype)); read_content := read_content_from....([EMAIL PROTECTED], MAX_BUFFER); end; Then I tried to do the following code, that continue to write the buffer content until nothing more to write, but it reads wrong data: start_count := 0; output_count := readcount * sizeof(cshort); read_content := read_content_from....([EMAIL PROTECTED], MAX_BUFFER); while (read_content > 0) do begin while (write_count > 0) do begin write_count := fpwrite (fd, @Buffer[start_count], output_count); if (write_count > 0) then begin dec (output_count, write_count); inc (start_count, write_count); end ; end; read_content := read_content_from....([EMAIL PROTECTED], MAX_BUFFER); end; I'm using ubuntu Linux amd64 using FPC 2.2.0 Any idea what I'm missing or doing wrong, and how to do it better ? Thanks, Ido -- http://ik.homelinux.org/ _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal