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
u3b2
machid(1) User Commands machid(1)
NAME
machid, sun, iAPX286, i286, i386, i486, i860, pdp11, sparc, u3b, u3b2, u3b5, u3b15, vax, u370 - get processor type truth value
SYNOPSIS
sun
iAPX286
i386
pdp11
sparc
u3b
u3b2
u3b5
u3b15
vax
u370
DESCRIPTION
The following commands will return a true value (exit code of 0) if you are using an instruction set that the command name indicates.
sun True if you are on a Sun system.
iAPX286 True if you are on a computer using an iAPX286 processor.
i386 True if you are on a computer using an iAPX386 processor.
pdp11 True if you are on a PDP-11/45tm or PDP-11/70tm.
sparc True if you are on a computer using a SPARC-family processor.
u3b True if you are on a 3B20 computer.
u3b2 True if you are on a 3B2 computer.
u3b5 True if you are on a 3B5 computer.
u3b15 True if you are on a 3B15 computer.
vax True if you are on a VAX-11/750tm or VAX-11/780tm.
u370 True if you are on an IBM(R) System/370tm computer.
The commands that do not apply will return a false (non-zero) value. These commands are often used within makefiles (see make(1S)) and
shell scripts (see sh(1)) to increase portability.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWcsu |
+-----------------------------+-----------------------------+
SEE ALSO
make(1S), sh(1), test(1), true(1), uname(1), attributes(5)
NOTES
The machid family of commands is obsolete. Use uname -p and uname -m instead.
SunOS 5.11 5 Jul 1990 machid(1)