Stdout and Shell commands

Mark Smith mark at maseurope.net
Mon Dec 4 22:05:59 CST 2006


Thanks, Dar. I might play around with "process", but it sounds like  
the file route is the way to go for now.

Best,

Mark

On 4 Dec 2006, at 22:52, Dar Scott wrote:

>
> On Dec 4, 2006, at 5:24 AM, Mark Smith wrote:
>
>> There are some shell commands (openssl sha1, for example) that  
>> take their arguments from stdin or a file, but not the command  
>> line. While it's easy to write data to a file and pass the  
>> filepath to the shell, it's not very efficient if you want to do  
>> it many times in succession.
>
> What you want is process i/o.  See 'open process' etc.
>
> There are some problems.  You have to do a half-close.  That is,  
> you need to close the pipe to the tool without closing the pipe  
> from the tool.
>
> Revolution tries to do a half-close with a a control character (04,  
> EOT, Control-D), but that doesn't work well.
>
> On OS X you cannot do a half-close with binary.  This was done to  
> fix a concern (bz 1770).
>
> On OS X this does do a half-close with text mode, but there seems  
> to be something fishy with the line ends in text mode.  Anybody  
> know what is wrong with the line ends in this case?  This needs a  
> bz but I'm not sure what is up.  I've tried this with sort and  
> things don't get sorted.
>
> On XP it gets a little mixed up with ^X or ^Z, I forgot which.   
> That is, Rev thinks it closed the pipe for ^D, but the application  
> thinks it is still open.  Maybe you can send ^X^Z^D and something  
> will happen.  I have some notes someplace but I don't think they  
> were enough to bugzilla.
>
> As you can see, I'm not clear on this.  We do need a half close  
> command for open process and open socket.
>
> If the tool reads a fixed number of lines or characters, you might  
> be OK.  You don't have to do the half close.
>
> I do have some other bugs reported on process I/O and some bugs  
> that are not ready for bz on process I/O.
>
>
> I'd go with the file for the input with shell() for now.  If the  
> output is binary, then you should use a file for output, too, on  
> Windows.  I have not had a problem with binary output on OS X.
>
> Note that passwords are often not input with stdin even though they  
> look like it.
>
> Dar
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your  
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution




More information about the use-livecode mailing list