发新话题
打印

请教linux_binprm的问题

请教linux_binprm的问题

struct linux_binfmt {
        struct linux_binfmt * next;
        struct module *module;
        int (*load_binary)(struct linux_binprm *, struct  pt_regs * regs);
        int (*load_shlib)(struct file *);
        int (*core_dump)(long signr, struct pt_regs * regs, struct file * file);
        unsigned long min_coredump;        /* minimal dump size */
};
我对其中的一些成员变量不是很清楚。
请哪位可以帮我解释一下,
这其中的sh_bang,loader,exec的含义是什么?因为它们在fs/exec.c的do_execve()函数中被赋值了,我想知道他们的含义!!      

TOP

sh_bang = 0 表示不是script文件,而是可执行文件。

bprm.p = PAGE_SIZE*MAX_ARG_PAGES-sizeof(void *);
...
bprm.exec = bprm.p;
应该是指向argv[]的参数区的指针。MAX_ARG_PAGES参数最大这么多页。

loader,我找了一下好象只看到用的地方只看到赋初值0,难道是保留给将来用的??      

TOP

发新话题