On 07/09/2020 11:27 am, Dave Martin wrote: > On Thu, Sep 03, 2020 at 11:20:25AM +0100, Boyan Karatotev wrote: >> On 02/09/2020 18:00, Dave Martin wrote: >>> On Fri, Aug 28, 2020 at 02:16:05PM +0100, Boyan Karatotev wrote: >>>> +int exec_sign_all(struct signatures *signed_vals, size_t val) >>>> +{ >>> >>> Could popen(3) be used here? >>> >>> Fork-and-exec is notoriously fiddly, so it's preferable to use a library >>> function to do it where applicable.I would love to, but the worker needs a bidirectional channel and popen >> only gives a unidirectional stream. > > Ah, fair point. > > Would it help if you created an additional pipe before calling popen()? > > May not be worth it, though. For one thing, wiring that extra pipe to > stdin or stdout in the child process would require some extra work... Well, I probably could, but I doubt the result would be any better. I agree that I'm not sure the effort is worth it and would rather keep it the same.