• Caterpillar
    Posts: 35 from 2008/4/16
    From: France
    Thanks, I'll take a look. I've also asked H.G. Müller, the current maintainer of XBoard/Winboard, and about piping he told me:


    The trick is that you create the pipes first. Each pipe has an input and an output, described by low-level file descriptors (numbers). You need two pipes, one for GUI->engine, one for engine->GUI. After you created the pipes, you fork. The child process inherits the open file descriptors. The trick is now to to make sure the file-descriptors at the engine side become 0 and 1, for the engine stdin and stdout. For this the dup() call is used to 'duplicate' a file descriptor (actually giving you a new one referring to the same file). After you set thet up, you use execv() in the child process to start the engine executable (which then inherits the file descriptors).

    This is of course for Linux, but would that take care of the reliability problem you mentioned for MorphOS ? As you can guess I'd rather do it the "Amiga" way, for MorphOS, so I'll take a look at your hint first. :)

    I'd never had guessed it would be so tricky on MorphOS, when it's so easy on OSX/Linux... Well, no pain no merit I guess. ;)
    "A good bug is a dead bug" (Don Dailey)
  • »17.04.14 - 09:57
    Profile Visit Website