|
我现在在uClinux环境中要进行多进程开发
main()
{
int child;
execve("/bin/dbg",arg,NULL);
}就没有问题,但是vfork以后再调用就有问题
main()
{
int child;
if(!(child = vfork()))
{
execve("/bin/dbg",arg,NULL);
}
else
{
printf("pid:%d is my son process\n",child);
}
}
运行时却出现错误
BINFMT_FLAT: reloc outside program 0x38201be5 (0 - 0x6b94/0x5800), killing dbg!
BINFMT_FLAT: reloc outside program 0x38201be5 (0 - 0x6b94/0x5800), killing dbg!
pid 14 is my son
请大家帮我分析一下,为什么会出现这种问题,在网上搜索大都认为BINFMT_FLAT是执行文件格式不对,可是我直接运行却又可以,很显然文件是可以运行的,只是为什么在子进程中就不能运行呢? |
|