writes byte or word in a given binary format
mput(x [, type, fd])
a vector of floating point or integer type numbers
a scalar: a file descriptor returned by the function mopen
. -1
stands for last opened file. Default value is
-1
.
a string: the binary format used to write all the entries of x
.
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"
):
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.
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.
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(); | ![]() | ![]() |