David Korn <dgk at research.att.com> wrote:
> ksh93 does not use the stdio FILE* at all, nor does it use
> stdin/stdout,/stderr. it used sfio which uses Sfio_t*, sfstdin,
> sfstdout, and sfstderr.
>
> However, if your builtin uses stdio, you can do one of the following:
>
> 1. compile it with the AST version of stdio.h which maps
> the calls into sfio calls.
As I did already mention, this would create incompatible libfind binaries
that cannot be used with standard Solaris software.
I do not like to create to (or more) incompatible libfind binaries in order to
fit the needs of various potential users of libfind.
> 2. compile it natively. In this case you need to make
> sure that you flush output streams before you return.
I suspect that this will not work at all as you need to overwrite
stdin/stdout/stderr in case you like to implement I/O redirection without
passing FILE* std[3]. As stdio has hidden data that is not inside FILE *,
you would only overwrite parts of the stdio data.
> In the former case, if the program terminates due to a signal,
> files that have been opened with sfopen() will automatically
> be closed. Otherwise, you will have to handle all the cleanup
> yourself.
This description seems to be incompatible with one I received some time ago.
As I already mentioned, Roland did promise me to test the adaptation
layer that we did discuss before, I am still in hope that we are able to find
a solution.
J?rg
--
EMail:joerg at schily.isdn.cs.tu-berlin.de (home) J?rg Schilling D-13353 Berlin
js at cs.tu-berlin.de (uni)
schilling at fokus.fraunhofer.de (work) Blog:
http://schily.blogspot.com/
URL: http://cdrecord.berlios.de/old/private/ ftp://ftp.berlios.de/pub/schily