我想在C++(Linux)中为我的某个套接字添加一个套接字过滤器。在套接字过滤器中,我需要获得struct fork_proc_event的偏移量,它嵌套在另一个结构中。该定义是这样的(cn_proc.h):在C++中嵌套C结构的offsetof()
struct proc_event { ... union { ... struct fork_proc_event { __kernel_pid_t parent_pid; ... } fork; ... } event_data; ... };
在C我这样做:
int off = offsetof(struct fork_proc_event, parent_pid);
但是我用C正在开发++。如果我试着这样做:
int off = offsetof(proc_event::fork_proc_event, parent_pid);
我得到以下错误:
error: expected type-specifier error: expected `,' error: expected `)' before ',' token
应如何offsetof()线是什么样子?
刚通过查找:它可以是'proc_event :: fork :: fork_proc_event'? – Alex 2012-07-26 07:13:03
不,它不起作用。我已经尝试过了。不管怎么说,还是要谢谢你。 – 2012-07-26 07:21:20
也许:offsetof(struct proc_event,event_data.fork。parent_pid) - offsetof(struct proc_event,event_data.fork) – 2012-07-26 07:38:24