Alexandre Julliard writes:
> Uwe Bonnes <[EMAIL PROTECTED]> writes:
>
> > I don't see an exec ( only an execvp) in
> > MODULE_CreateUnixProcess(). And the branch containing the execvp()
> > call is definitly not taken.
>
> Of course it is taken, in the child process. I suggest you read the
> man page for fork().
I _did_ read the man page. But not understand enough on the first tries
>
> > And I also don't see a server call
> > here. So I'd appreciate further explaanations.
>
> There is no server call and there shouldn't be one, but there should
> be something to synchronize the child with the parent. A way to do it
> would be to create a pipe, set its close-on-exec flag and write
> something into it if the exec fails. Then if a read() in the parent
> returns more than 0 bytes it means the exec failed.
>
I tried to follow your advice and learned a lot about pipe(), fcntl()
and friends.
But to my astonishment, now the execvp() no longer returns ( even with
an unmodified loader/module.c), but instead prints a message on the
controlling terminal:
/cdroms/bb-9805/trees.pdf: /cdroms/bb-9805/trees.pdf: \
cannot execute binary file
I am quite sure that behavious was different yesterday :-(
Any more hints?
Bye
Uwe Bonnes [EMAIL PROTECTED]
Free Software: If you contribute nothing, expect nothing
--