Visit Our UNIX and Linux User Community

Linux and UNIX Man Pages

Test Your Knowledge in Computers #932
Difficulty: Easy
Most first-generation personal computers did not keep track of dates and times.
True or False?
Linux & Unix Commands - Search Man Pages

offsetof(3) [netbsd man page]

OFFSETOF(3)						   BSD Library Functions Manual 					       OFFSETOF(3)

NAME
offsetof -- offset of a structure member SYNOPSIS
#include <stddef.h> size_t offsetof(type, member); DESCRIPTION
The offsetof() macro expands to an integer constant expression of type size_t and yields the offset, in bytes, of the field member from the start of the structure type. A compiler error will result if member is not aligned to a byte boundary (i.e. it is a bit-field). EXAMPLES
Regardless of the architecture and the ABI, the following example prints the value zero for the variable x. struct example { double x; int y; char z; }; size_t x, y, z; x = offsetof(struct example, x); y = offsetof(struct example, y); z = offsetof(struct example, z); (void)printf("%zu %zu %zu ", x, y, z); SEE ALSO
__alignof__(3), stddef(3), typeof(3) STANDARDS
The offsetof() macro conforms to ANSI X3.159-1989 (``ANSI C89''). BSD
April 1, 2011 BSD

Check Out this Related Man Page

OFFSETOF(3)						     Linux Programmer's Manual						       OFFSETOF(3)

NAME
offsetof - offset of a structure member SYNOPSIS
#include <stddef.h> size_t offsetof(type, member); DESCRIPTION
The macro offsetof() returns the offset of the field member from the start of the structure type. This macro is useful because the sizes of the fields that compose a structure can vary across implementations, and compilers may insert different numbers of padding bytes between fields. Consequently, an element's offset is not necessarily given by the sum of the sizes of the previous elements. A compiler error will result if member is not aligned to a byte boundary (i.e., it is a bit field). RETURN VALUE
offsetof() returns the offset of the given member within the given type, in units of bytes. CONFORMING TO
POSIX.1-2001, POSIX.1-2008, C89, C99. EXAMPLE
On a Linux/i386 system, when compiled using the default gcc(1) options, the program below produces the following output: $ ./a.out offsets: i=0; c=4; d=8 a=16 sizeof(struct s)=16 Program source #include <stddef.h> #include <stdio.h> #include <stdlib.h> int main(void) { struct s { int i; char c; double d; char a[]; }; /* Output is compiler dependent */ printf("offsets: i=%zd; c=%zd; d=%zd a=%zd ", offsetof(struct s, i), offsetof(struct s, c), offsetof(struct s, d), offsetof(struct s, a)); printf("sizeof(struct s)=%zd ", sizeof(struct s)); exit(EXIT_SUCCESS); } COLOPHON
This page is part of release 4.15 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/. GNU
2017-09-15 OFFSETOF(3)

3 More Discussions You Might Find Interesting

1. Programming

Address Alignment rules for structure variables

Hi, This question might look naive, but I need to know address alignment rules used by O/S, hence posting this one. I've following 2 structures :- struct xyz { char a; int b; char c; } struct abc { char a; char c; int b; } If I print size... (2 Replies)
Discussion started by: anijog
2 Replies

2. Programming

Array alignment on HPUX

Hi, I'm porting code from Windows to HP-UX 11.23, using gcc (I'm begining to suspect this might not be the best choice, but I thought it would be most compatible since we've already compiled on Linux with gcc). I have in my code something similar to the folowing: unsigned char *ch_arr =... (4 Replies)
Discussion started by: rimon
4 Replies

3. Programming

calling pthread_self (on ubuntu), expensive?

Hi all, Is anyone aware of what operations are involved when a call to pthread_self() is made, obtaining the unique thread ID on a Ubuntu system (or even any Linux flavour)? Specifically, to retrieve the thread id, is there any locking required or atomic operations? I'm building an... (11 Replies)
Discussion started by: gorga
11 Replies

Featured Tech Videos