On Wed, Mar 19, 2008 at 10:14 AM, Nick Rogers <[EMAIL PROTECTED]> wrote:

> Hi,
> In my app I'm reading raw bytes from the file.
> So to get a integer's correct value, I'll need to swap bytes
> according to the machine (big or little-endian type), I guess.
>
> Is there a way so that I can know, if its a intel or ppc machine,
> that my app is running on?


It would be better to write code that doesn't need to know that - it'll be
portable to any other hardware Apple uses in the future. (For example, I
have no idea if the iPhone or iPod are little or big endian.)

There are a number of functions in Foundation that allow you to write such
code. For instance, NSSwapBigShortToHost() will take a big endian short, and
return a short that's in the correct format for whatever machine the code
happens to be running on; if it's called on a big endian system, it's a
no-op. There are many such functions - have a look in the "Byte Ordering"
section here:

    <
http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Functions/Reference/reference.html
>

There are also Core Endian functions:

    <
http://developer.apple.com/documentation/Carbon/Reference/CoreEndianReference/Reference/reference.html
>

sherm--
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to