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

Reply via email to