嵌套结构的访问元素
问题描述:
在C中,有可能有一个嵌套在另一个结构中的结构?我将如何访问内部结构的字段?就拿结构的kinfo_proc
例如:嵌套结构的访问元素
struct kinfo_proc {
struct extern_proc kp_proc; /* proc structure */
struct eproc {
struct proc *e_paddr; /* address of proc */
struct session *e_sess; /* session pointer */
struct _pcred e_pcred; /* process credentials */
struct _ucred e_ucred; /* current credentials */
struct vmspace e_vm; /* address space */
pid_t e_ppid; /* parent process id */
pid_t e_pgid; /* process group id */
short e_jobc; /* job control counter */
dev_t e_tdev; /* controlling tty dev */
pid_t e_tpgid; /* tty process group id */
struct session *e_tsess; /* tty session pointer */
#define WMESGLEN 7
char e_wmesg[WMESGLEN+1]; /* wchan message */
segsz_t e_xsize; /* text size */
short e_xrssize; /* text rss */
short e_xccount; /* text references */
short e_xswrss;
int32_t e_flag;
#define EPROC_CTTY 0x01 /* controlling tty vnode active */
#define EPROC_SLEADER 0x02 /* session leader */
#define COMAPT_MAXLOGNAME 12
char e_login[COMAPT_MAXLOGNAME]; /* short setlogin() name */
#if CONFIG_LCTX
pid_t e_lcid;
int32_t e_spare[3];
#else
int32_t e_spare[4];
#endif
} kp_eproc;
};
我怎么会去试图获得一个新做的kinfo_proc增加实例的e_ppid?
答
您将创建类似:
struct kinfo_proc test1;
test1.kp_eproc.e_ppid /// Access it like this.
我看到你的逻辑!我错过了struct关键字。傻我。但我认为“eproc”实际上应该是kp_eproc。当我这样做时,它就像一个魅力。谢谢! – 2012-08-09 20:05:24
谢谢Rob。他已经相应地改变了它。 – 2012-08-09 20:06:54