<< mopen Files : Input/Output functions mputl >>

Scilab Help >> Files : Input/Output functions > mput

mput

writes byte or word in a given binary format

Syntax

mput(x [, type, fd])

Arguments

x

a vector of floating point or integer type numbers

fd

a scalar: a file descriptor returned by the function mopen. -1 stands for last opened file. Default value is -1.

type

a string: the binary format used to write all the entries of x.

Description

The mput function writes data to the output specified by the stream parameter fd. Data is written at the position at which the file pointer is currently pointing and advances the indicator appropriately.

The type parameter is a conversion specifier which may be set to any of the following flag characters (with default value "l"):

"l", "i", "s", "ul", "ui", "us", "d", "f", "c", "uc"

for writing respectively a long long, an int (long int), a short, an unsigned long long int, an unsigned int (long int), an unsigned short, a double, a float, a char and an unsigned char. The bytes which are wrote are automatically swapped if necessary (by checking little-endian status) in order to produce machine independent binary files (in little-endian mode). This default swapping mode can be suppressed by adding a flag swap = 0 in the mopen function.

"..l" or "..b"

It is also possible to write in little-endian or big-endian mode by adding a "l" or "b" character at the end of a type specification. For example "db" will write a double in big-endian mode.

Examples

filen = 'test.bin';
mopen(filen,'wb');
mput(1996,'l');mput(1996,'i');mput(1996,'s');mput(98,'c');

// force little-endian
mput(1996,'ll');mput(1996,'il');mput(1996,'sl');mput(98,'cl');

// force big-endian
mput(1996,'lb');mput(1996,'ib');mput(1996,'sb');mput(98,'cb');

mclose();
mopen(filen,'rb');
if 1996<>mget(1,'l') then pause,end
if 1996<>mget(1,'i') then pause,end
if 1996<>mget(1,'s') then pause,end
if   98<>mget(1,'c') then pause,end

// force little-endian
if 1996<>mget(1,'ll') then pause,end
if 1996<>mget(1,'il') then pause,end
if 1996<>mget(1,'sl') then pause,end
if   98<>mget(1,'cl') then pause,end

// force big-endian
if 1996<>mget(1,'lb') then pause,end
if 1996<>mget(1,'ib') then pause,end
if 1996<>mget(1,'sb') then pause,end
if   98<>mget(1,'cb') then pause,end

mclose();

See also


Report an issue
<< mopen Files : Input/Output functions mputl >>