Windows Dos window doesn't work?

Dar Scott dsc at swcp.com
Wed Dec 15 21:36:48 EST 2004


On Dec 15, 2004, at 6:44 PM, Alex Tweedly wrote:

> So would you do something like
>   put "d:" & cr & "cd \My folder\my directory" & cr & "dir *.jpg" & cr 
> into URL "my.bat"
>   put shell("cmd < my.bat")
>   delete file "my.bat"

Yeah, something like that.

> But I'd like to hear any more you remember about problems with open 
> process on Windows.

OK.  Off the top of my head:

If you read too soon and there is no data, Rev will hang.

A control-. in a read will sometimes cause a crash.

Under some conditions processes are left running and unable to shut 
down, even ones that work on the command line such as ping.  They have 
to be killed.

The 'in time' does not work right; the time is random.

Binary I/O is butchered.

until end will crash, but until empty will get what's in the buffer 
sometimes.

The read returns eof on an empty buffer and will throw an error near 
the end of data in a closed pipe.

Severe limitations:  close will not only close the pipe to the process 
but will disable the ability to read the response.  Also, if the 
process quits it is hard to read its last words.

Doc doesn't mention binary for open process or the difference between 
empty and end in open process

There are others, but I don't remember.

For most of these I found workarounds.  There were some limitations 
that blocked what I was doing at the time and since RunRev seemed to 
have no desire to fix these, I gave up on open process.  Anything with 
a dozen bugs like this is bound to have more; it did not seem prudent 
to go on.  My customer had already decided I had gone off my rocker in 
doing this with Revolution.

These are from over two years ago, so some of these may have gotten 
fixed as other bugs were fixed.

The shell() is much more stable and can get data from a process that 
quits.  Unfortunately, it tries to do line-end transformations on 
binary data.  There is probably a base64 utility that can help with 
that.

The last time I check 'open process' on OS X, it didn't work at all.

Dar Scott
****************************************
     DSC
     http://www.swcp.com/dsc/
     Programming Services and Software
****************************************



More information about the use-livecode mailing list