fork() call failed.

I am porting a program from Linux to QNX. Running on 6.1a X86 system, the
program failed on fork() call with errno=ENOSYS. ( the fork() isn’t
implemented for this memory protection model). Could someone help me
understand what’s the reason of this error?And how do I work around this?

Thanks,
-Beth

Beth <id@net.com> wrote:

I am porting a program from Linux to QNX. Running on 6.1a X86 system, the
program failed on fork() call with errno=ENOSYS. ( the fork() isn’t
implemented for this memory protection model). Could someone help me
understand what’s the reason of this error?And how do I work around this?

You can’t current mix fork() and threads(). You can use vfork().

chris


Chris McKillop <cdm@qnx.com> “The faster I go, the behinder I get.”
Software Engineer, QSSL – Lewis Carroll –
http://qnx.wox.org/

Thanks for your response. If I change the code to use vfork(). I am getting
an errno=9. “Bad file descriptor”.

Thanks for any help.

-Beth


“Chris McKillop” <cdm@qnx.com> wrote in message
news:bbr72t$qep$2@nntp.qnx.com

Beth <> id@net.com> > wrote:
I am porting a program from Linux to QNX. Running on 6.1a X86 system,
the
program failed on fork() call with errno=ENOSYS. ( the fork() isn’t
implemented for this memory protection model). Could someone help me
understand what’s the reason of this error?And how do I work around
this?


You can’t current mix fork() and threads(). You can use vfork().

chris


Chris McKillop <> cdm@qnx.com> > “The faster I go, the behinder I get.”
Software Engineer, QSSL – Lewis Carroll –
http://qnx.wox.org/

It is very possible in your situation you can’t use vfork(). It has VERY
strict rules compared to fork(). If you are simply calling fork() to exec()
a binary, look into replacing that code sequence with a call to spawn().

chris


Beth <id@net.com> wrote:

Thanks for your response. If I change the code to use vfork(). I am getting
an errno=9. “Bad file descriptor”.

Thanks for any help.

-Beth


“Chris McKillop” <> cdm@qnx.com> > wrote in message
news:bbr72t$qep$> 2@nntp.qnx.com> …
Beth <> id@net.com> > wrote:
I am porting a program from Linux to QNX. Running on 6.1a X86 system,
the
program failed on fork() call with errno=ENOSYS. ( the fork() isn’t
implemented for this memory protection model). Could someone help me
understand what’s the reason of this error?And how do I work around
this?


You can’t current mix fork() and threads(). You can use vfork().

chris


Chris McKillop <> cdm@qnx.com> > “The faster I go, the behinder I get.”
Software Engineer, QSSL – Lewis Carroll –
http://qnx.wox.org/

\


Chris McKillop <cdm@qnx.com> “The faster I go, the behinder I get.”
Software Engineer, QSSL – Lewis Carroll –
http://qnx.wox.org/