slash_blog - the uname() call can produce the same output as the uname command.
Is there a command line utility that produces what you want on your machine?
I think on some UNIX flavors the documented command to get the platform is uname -p and not uname -m. The uname() call produces output which is more synonymous with uname -m. So while this works for Linux, for some other flavors such as Sun Solaris and HP-UX this isn't always correct.
However porter's approach is working for me so far. Though I am using #ifdef _POWER
for IBM AIX powerpc architecture, because I couldn't find a __ppc__ or __powerpc__ defined by gcc on AIX. Is it correct to use _POWER?
for IBM AIX powerpc architecture, because I couldn't find a __ppc__ or __powerpc__ defined by gcc on AIX. Is it correct to use _POWER?
Sounds right, sometimes the macros don't have the trailing "__". As always because we don't know why you need the processor architecture we can't advise you more.
As a couple of suggestions you may be trying to find out if you are big or little endian, or perhaps 32 or 64 bit.
In the first case for macros like "_BYTE_ORDER", "_LITTLE_ENDIAN" and "_BIG_ENDIAN".
In the second case look for macros like _LP64 or __LP64__ or even "_WIN64".
This may end up long winded but worth it in the long run, I have a single file I extend as I test more architectures.
That's a lot of header work...I wonder how much of that evolved as you tested and found the original tricks didn't work on a particual machine?
For all that...a simple startup application call during runtime may have been worth it. Something like:
Network order is defined as big endian...so if the machine stores differently than the network order then htons will switch up the bytes. This will, of course, result in its returning something other than the input value.
Easy enough if you need the data at runtime...doesn't help you much if you need it at compile time, of course.
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)
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)
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)
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)
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)
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)