fwrite

Write data in binary form to the file specified by the file descriptor fid.

📝 Syntax

  • count = fwrite(fid, data)

  • count = fwrite(fid, data, precision)

  • count = fwrite(fid, data, precision, skip)

  • count = fwrite(fid, data, precision, skip, arch)

  • count = fwrite(fid, data, precision, arch)

  • [count, bytes] = fwrite(fid, ...)

📥 Input argument

  • fid - a file descriptor

  • data - data to write

  • precision - class of values to read

  • skip - number of bytes to skip

  • arch - a string specifying the data format for the file.

📤 Output argument

  • count - -1 or number of elements written

  • bytes - number of bytes written

📄 Description

Write data in binary form to the file specified by the file descriptor fid.

characters encoding uses fopen parameter.

supported architecture:

native , n: format of the current machine.

ieee-be, b: IEEE big endian.

ieee-le, l: IEEE little endian.

supported precision:

Value Type
Precision
Bits (Bytes)

Logical

'logical'

platform-dependent

Floating-point numbers

'double', 'real*8', 'float64'

64 (8)

'single', 'real*4', 'float32'

32 (4)

Integers, signed

'int'

32 (4)

'int8', 'integer*1', 'schar'

8 (1)

'int16', 'integer*2'

16 (2)

'int32', 'integer*4'

32 (4)

'int64', 'integer*8'

64 (8)

Integers, unsigned

'uint8', 'uchar'

8 (1)

'uint16'

16 (2)

'uint32'

32 (4)

'uint64'

64 (8)

Characters

'char', '*char'

depends encoding with fopen.

'char*1'

depends encoding with fopen.

if fwrite fails, it returns a negative value.

if fwrite succeeds, it returns the number of elements written successfully.

if fwrite writes characters, it returns the number of characters written successfully and not the number of elements.

💡 Examples


A = rand(3,1)

fileID = fopen([tempdir(), 'doubledata.bin'],'w');
fwrite(fileID, A,'double');
fclose(fileID);

fileID = fopen([tempdir(), 'doubledata.bin'],'r');
R = fread(fileID, 'double')
fclose(fileID);

test_string =  'é ö ä ü è ê';
fid = fopen([tempdir(), 'fwrite_example_char.txt'], 'w','n', 'UTF-8');
[count, bytes] = fwrite(fid, test_string) % returns 11 and 17
fclose(fid);

% This is the number of characters written and not the number of bytes.
% Each accented character (é, ö, ä, ü, è, ê) = 2 bytes each
% Each space = 1 byte
% Total bytes = 6*2 + 5*1 = 17 bytes

🔗 See also

fopen, fclose, fread.

🕔 History

Version
📄 Description

1.0.0

initial version

1.15.0

fwrite returns the number of characters written for character data.

Last updated

Was this helpful?