'C ağ kitaplığı', sonsuzluğun üstesinden gelmek için işlevler sunar. Yani htons (), htonl (), ntohs () ve ntohl () ... burada n "ağ" (yani, big-endian) ve h "host" (yani, çalıştıran makinenin endianlığı) kodu).
Bu görünen 'işlevler' (genellikle) makrolar olarak tanımlanır [bkz. <Netinet / in.h>], bu nedenle bunları kullanmak için çalışma zamanı yükü yoktur.
Aşağıdaki makrolar, sonsuzluğu değerlendirmek için bu 'işlevleri' kullanır.
#include <arpa/inet.h>
#define IS_BIG_ENDIAN (1 == htons(1))
#define IS_LITTLE_ENDIAN (!IS_BIG_ENDIAN)
Ek olarak:
Bir sistemin sonunu bilmem gereken tek zaman, sonu bilinmeyen başka bir sistem tarafından okunabilecek bir değişkeni [bir dosyaya / diğerine] yazdığım zamandır (platformlar arası uyumluluk için) ) ... Bu gibi durumlarda, endian işlevlerini doğrudan kullanmayı tercih edebilirsiniz:
#include <arpa/inet.h>
#define JPEG_MAGIC (('J'<<24) | ('F'<<16) | ('I'<<8) | 'F')
// Result will be in 'host' byte-order
unsigned long jpeg_magic = JPEG_MAGIC;
// Result will be in 'network' byte-order (IE. Big-Endian/Human-Readable)
unsigned long jpeg_magic = htonl(JPEG_MAGIC);