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.
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)
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)
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)
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)
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)
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 REDHAT
types
types.h(3HEAD) Headers types.h(3HEAD)NAME
types.h, types - primitive system data types
SYNOPSIS
#include <sys/types.h>
DESCRIPTION
The data types defined in <sys/types.h> are as follows:
32-bit Solaris
The data types listed below are defined in <sys/types.h> for 32-bit Solaris.
typedef struct { int r[1]; } *physadr;
typedef long clock_t;
typedef long daddr_t;
typedef char * caddr_t;
typedef unsigned char unchar;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong_t;
typedef unsigned long ino_t;
typedef long uid_t;
typedef long gid_t;
typedef ulong_t nlink_t;
typedef ulong_t mode_t;
typedef short cnt_t;
typedef long time_t;
typedef int label_t[10];
typedef ulong_t dev_t;
typedef long off_t;
typedef long pid_t;
typedef long paddr_t;
typedef int key_t;
typedef unsigned char use_t;
typedef short sysid_t;
typedef short index_t;
typedef short lock_t;
typedef unsigned int size_t;
typedef long clock_t;
typedef long pid_t;
64-bit Solaris
The data types listed below are defined in <sys/types.h> for 64-bit Solaris.
typedef long blkcnt_t
typedef long clock_t
typedef long daddr_t
typedef ulong_t dev_t
typedef ulong_t fsblkcnt_t
typedef ulong_t fsfilcnt_t
typedef int gid_t
typedef int id_t
typedef long ino_t
typedef int key_t
typedef uint_t major_t
typedef uint_t minor_t
typedef uint_t mode_t
typedef uint_t nlink_t
typedef int pid_t
typedef ptrdiff_t intptr_t
typedef ulong_t rlim_t
typedef ulong_t size_t
typedef uint_t speed_t
typedef long ssize_t
typedef long suseconds_t
typedef uint_t tcflag_t
typedef long time_t
typedef int uid_t
typedef int wchar_t
Preprocessor Symbols
For 32-bit programs, pointers and the C data types int and long are all 32-bit quantities. For 64-bit programs, pointers and the C data
type long are defined as 64-bit quantities.
The preprocessor symbol _ILP32, made visible by the inclusion of <sys/types.h>, can be used with the preprocessor #ifdef construct to
define sections of code that will be compiled only as part of a 32-bit version of a given C program.
The preprocessor symbol _LP64 can be used in the same way to define sections of code that will be compiled only as part of a 64-bit version
of a given C program. See EXAMPLES.
This header incorporates definitions of other preprocessor symbols that can be useful when keeping code portable between different instruc-
tion set architectures.
_LITTLE_ENDIAN
_BIG_ENDIAN
The natural byte order of the processor. A pointer to an int points to the least/most significant byte of that int.
_STACK_GROWS_UPWARD
_STACK_GROWS_DOWNWARD
The processor specific direction of stack growth. A push onto the stack increases/decreases the stack pointer, so it stores data at
successively higher/lower addresses.
_CHAR_IS_UNSIGNED
_CHAR_IS_SIGNED
The C Compiler implements objects of type char as unsigned or signed respectively. This is really an implementation choice of the com-
piler, but it is specified in the ABI and tends to be uniform across compilers for an instruction set architecture.
_CHAR_ALIGNMENT
_SHORT_ALIGNMENT
_INT_ALIGNMENT
_LONG_ALIGNMENT
_LONG_LONG_ALIGNMENT
_DOUBLE_ALIGNMENT
_LONG_DOUBLE_ALIGNMENT
_POINTER_ALIGNMENT
_FLOAT_ALIGNMENT
The ABI defines alignment requirements of each of the primitive object types. Some, if not all, might be hardware requirements as
well. The values are expressed in bytes.
_MAX_ALIGNMENT
The most stringent alignment requirement as specified by the ABI. Equal to the maximum of all the above _XXX_ALIGNMENT values.
_LONG_LONG_ALIGNMENT_32
The 32-bit ABI supported by a 64-bit kernel may have different alignment requirements for primitive object types. The value of this
identifier is expressed in bytes.
USAGE
The daddr_t type is used for disk addresses except in an inode on disk. Times are encoded in seconds since 00:00:00 UTC, January 1, 1970.
The major and minor parts of a device code specify kind and unit number of a device and are installation-dependent. Offsets are measured in
bytes from the beginning of a file.
The label_t[] types are used to save the processor state while another process is running.
EXAMPLES
Example 1: Use of preprocessor symbol _LP64.
In the following example, the preprocessor symbol _LP64 defines sections of code that will be compiled only as part of a 64-bit version of
the given C program.
#include <sys/types.h>
...
#ifdef _LP64
printf("The data model is LP64 in this environment
");
#else
#ifdef _ILP32
printf("The data model is ILP32 in this environment
");
#else
#error "Unknown data model!"
#endif
#endif
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Interface Stability |Stable |
+-----------------------------+-----------------------------+
SEE ALSO types32.h(3HEAD), attributes(5), standards(5)SunOS 5.10 6 Oct 2004 types.h(3HEAD)