06-12-2007
Sure, the issue with big/little endian is their storage in memory. So "\001\000\000\000" sets up four bytes of memory, this could also be done as
char buffer[]={1,0,0,0};
but the string approach allows it to be done inline and use octel encoding, hence the three digits per byte.
Then we try and read a short from that area of memory, now we actually don't know how big a short is, but it's unlikely to be more than four bytes, the spec only says that a short should not be longer than a long, so casting it to a (const short *) means this is a pointer to a short, then the preceeding * gets the value of at that pointer.
If this was a big-endian machine it would have loaded 0x0100 into the short, if it was little-endian it would have loaded 0x0001.
In the very rare case that a short was 4 bytes, then the big-endian machine would have loaded 0x01000000 hence the test for < 256.
10 More Discussions You Might Find Interesting
1. Programming
Hi all:
I would like to get some details about development using C++ on TRUE Unix platform.
Can anyone help me ??
Thanks,
-Mandar (2 Replies)
Discussion started by: mandar3
2 Replies
2. UNIX for Advanced & Expert Users
Can anybody help me in finding out a solution for the problem below?
When we write .unix or .sh files in windows OS and port them to Unix platforms there is a character ^M inserted at the end of each line of the script file.
During ftp porting I set the transfer mode as ASCII for the script... (7 Replies)
Discussion started by: tamilselvi
7 Replies
3. UNIX for Dummies Questions & Answers
I'm a completely noob to Unix. I have previously managed quite well Windows OS's but never Unix.
-My question is quite simple:
I've been investigating what's the easiest and most complex Unix OS. However, it seems there are quite a couple of OS's from which to choose, like: -Darwin
... (3 Replies)
Discussion started by: justanoob
3 Replies
4. UNIX for Dummies Questions & Answers
i have to select particular fields from a multiple line record.
my record is in dump.txt file and looks like this
*******************
tipo = abonado simplex, Idiomas = dic1 - none, Operador = estandar
Serv. portadora admitido: modem
ind = 0 numero telefonico = 79260960, att = 0... (1 Reply)
Discussion started by: junaid.nehvi
1 Replies
5. UNIX for Dummies Questions & Answers
Just wonder about this question everytime that how many of us use unix as desktop and prefers which unix platform as desktop.
- nilesh (4 Replies)
Discussion started by: ynilesh
4 Replies
6. Programming
Hi
can any body post example for socket tcpclient in c++ act like browser with HTTp 1.1 and send message for the server (2 Replies)
Discussion started by: Net Star
2 Replies
7. UNIX for Dummies Questions & Answers
hellow everyone,
iam a new user to linux and i have question about unix os. unix is operating system or platform iam confused. i have read some article about unix but i haven't found the answer what iam searching for. so iam confused in this topic can anyone made it clear. Any types of... (8 Replies)
Discussion started by: paruhang
8 Replies
8. Red Hat
Hi,
I am just confused about these three things which are shown in the output of uname command. I am running RH lINUX 9.0 on hardware having Intel HT CPU. My uname shows
uname -p i686 (processor)
uname -m i686 (machine)
uname -i i386 (hardware)
I was about to ... (1 Reply)
Discussion started by: dextergenious
1 Replies
9. UNIX for Advanced & Expert Users
How do you see plots produced in R under UNIX platform?
Thanks! (2 Replies)
Discussion started by: johnkim0806
2 Replies
10. Red Hat
I'm converting a binary file to ASCII using c code.
The folllowing block of code prints correct double value 00000.000000000 on HPUNIX platform.
longi double;
/* C79 - Price Per Minute */
memcpy(&longi,&rbuff,8);
fprintf(wfp,"%015.9f ",longi);
prints : 00000.000000000
... (6 Replies)
Discussion started by: krk
6 Replies
LEARN ABOUT OPENSOLARIS
mlib_vectorreversebyteorder_inp
mlib_VectorReverseByteOrder_Inp(3MLIB) mediaLib Library Functions mlib_VectorReverseByteOrder_Inp(3MLIB)
NAME
mlib_VectorReverseByteOrder_Inp - reverse byte order of vector, in place
SYNOPSIS
cc [ flag... ] file... -lmlib [ library... ]
#include <mlib.h>
mlib_status mlib_VectorReverseByteOrder_Inp(void *xz,
mlib_s32 n, mlib_s32 s);
DESCRIPTION
The mlib_VectorReverseByteOrder_Inp() function changes the encoding of each element from big endian to little endian, or from little endian
to big endian.
It reverses the byte order of each element of the vector, in place.
PARAMETERS
The function takes the following arguments:
xz Pointer to the input and output vector.
n Number of elements in the vectors.
s Size of elements in bytes.
RETURN VALUES
The function returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Interface Stability |Committed |
+-----------------------------+-----------------------------+
|MT-Level |MT-Safe |
+-----------------------------+-----------------------------+
SEE ALSO
mlib_VectorReverseByteOrder(3MLIB), mlib_VectorReverseByteOrder_S16(3MLIB), mlib_VectorReverseByteOrder_S16_S16(3MLIB), attributes(5)
SunOS 5.11 2 Mar 2007 mlib_VectorReverseByteOrder_Inp(3MLIB)