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
--


Reply via email to