wordexp() implementation without fork()
Brian Inglis
Brian.Inglis@SystematicSw.ab.ca
Fri Aug 7 19:32:37 GMT 2020
On 2020-08-05 11:09, Sebastian Huber wrote:
> On 05/08/2020 17:35, Joel Sherrill wrote:
>> Having a single process wordexp() implementation has been on the RTEMS
>> POSIX wishlist for a while. I haven't been able to find one. The POSIX
>> method description seems to hint that this implementation strategy is
>> possible and the Linux man page uses the phrase "shell-like expansion".
>>
>> Does anyone know of an implementation that doesn't use fork()? Or an
>> implementation strategy based around some open source wildcard evaluation?
>>
>> Or is this a POSIX method that is just unimplementable without multiple
>> processes?
> Can't you re-use parts of the shell implementation, e.g. freebsd_wordexpcmd() in
>
> https://github.com/freebsd/freebsd/blob/master/bin/sh/expand.c#L1507
The main issue seems to be if command substitution is supported, it has to be
executed in a subshell, with the full capabilities of a POSIX shell:
https://pubs.opengroup.org/onlinepubs/9699919799/functions/wordexp.html
See RATIONALE:
"While wordexp() could be implemented entirely as a library routine, it is
expected that most implementations run a shell in a subprocess to do the expansion."
--
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada
This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.
[Data in IEC units and prefixes, physical quantities in SI.]
More information about the Newlib
mailing list