[R] Calling FING.EXE under RGui.EXE for windows.

Gabor Grothendieck ggrothendieck at gmail.com
Sun Jan 10 19:42:10 CET 2010


Perhaps you can add it to the bug list before you leave it including
what you tried in case its a symptom of some larger underlying
problem.

On Sun, Jan 10, 2010 at 1:24 PM, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
> I'm quitting on this one.  For the record, I took a look at a fairly old
> version of the Tcl code (from 8.4.13) that I had around from an old attempt
> to get it to work properly with MDI windows.  There are a number of
> differences between their exec code and our system() code, but I couldn't
> find the right combination to get system() to be able to run find.  It
> always crashes with a seg fault in ulib.dll when run with input coming from
> the pipe we send it.
>
> If you use input redirection on the command line, it's fine, for example
>
> system("cmd /c c:/WINDOWS/system32/find /? <nul")
>
> or
>
> shell("c:/WINDOWS/system32/find \"Hello\" c:/temp/foo.txt <nul")
>
> So perhaps we're not setting up the pipe correctly, but it works with most
> other programs, so I'm going to assume find is using it incorrectly, unless
> someone points out what we're doing wrong.
>
> Duncan Murdoch
>
>
> On 10/01/2010 8:18 AM, Gabor Grothendieck wrote:
>>
>> I noticed this does work, i.e. it displays the requested help info, in
>> Rgui on my Vista system:
>>
>> library(tcltk)
>> .Tcl("exec find /?")
>>
>> On Sat, Jan 9, 2010 at 7:27 PM, Duncan Murdoch <murdoch at stats.uwo.ca>
>> wrote:
>>>
>>> On 09/01/2010 6:31 PM, Gabor Grothendieck wrote:
>>>>
>>>> That doesn't explain why this returns character(o) even though we have
>>>> launched a console for it:
>>>>
>>>> system("cmd /c C:\\windows\\system32\\find /?", intern = TRUE)
>>>
>>> I don't see any console launched.  R redirects stdin and stdout (and
>>> stderr,
>>> I think), and it appears that Windows doesn't open a console.  I do see a
>>> console flash by if I do
>>>
>>> system('cmd /c c:/WINDOWS/system32/find.exe /?', wait=FALSE,
>>> invisible=FALSE)
>>>
>>> but of course then we don't capture the output, so it's not very useful.
>>>  Looking at the source, the only case where we ask to create a console is
>>> the combination "wait=FALSE, invisible=FALSE", but there might be
>>> combinations of other options that make this a default.  The MS
>>> documentation says that a console will be created automatically for any
>>> console application, but that doesn't appear to be happening.
>>>
>>> So I guess you could get find.exe to work by calling it from a batch file
>>> with a "pause" at the end and using the wait=FALSE,invisible=FALSE
>>> options.
>>>
>>> The above observations are in Win XP SP3, not anything newer.
>>>
>>> Duncan Murdoch
>>>
>>>> On Sat, Jan 9, 2010 at 5:24 PM, Duncan Murdoch <murdoch at stats.uwo.ca>
>>>> wrote:
>>>>>
>>>>> On 07/01/2010 1:25 PM, Uwe Ligges wrote:
>>>>>>
>>>>>> Argh. I see it as well. Will dig a lit tomorrow.
>>>>>
>>>>> I don't know exactly what's going on, but it looks as though it is
>>>>> something
>>>>> specific to the find.exe utility, e.g. maybe it is assuming that it's
>>>>> being
>>>>> run inside a console and reading CONIN$ or writing to CONOUT$ without
>>>>> checking whether they can be opened.  When you run it from Rterm, Rterm
>>>>> is
>>>>> in a console, which appears to be good enough.
>>>>>
>>>>> So it may be anyone who wants to use it will have to contact Microsoft
>>>>> to
>>>>> find out how...
>>>>>
>>>>> Duncan Murdoch
>>>>>
>>>>>> Uwe
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 07.01.2010 12:25, Gabor Grothendieck wrote:
>>>>>>>
>>>>>>> I get a problem with shell too:
>>>>>>>
>>>>>>> Under Rgui:
>>>>>>>
>>>>>>>> R.version.string
>>>>>>>
>>>>>>> [1] "R version 2.10.1 Patched (2010-01-01 r50884)"
>>>>>>>
>>>>>>>> system("C:\\windows\\system32\\find /?", intern = TRUE)
>>>>>>>
>>>>>>> character(0)
>>>>>>>
>>>>>>>> system("cmd /c C:\\windows\\system32\\find /?", intern = TRUE)
>>>>>>>
>>>>>>> character(0)
>>>>>>>
>>>>>>>> shell("C:\\windows\\system32\\find /?")
>>>>>>>
>>>>>>> Warning message:
>>>>>>> In shell("C:\\windows\\system32\\find /?") :
>>>>>>>  'C:\windows\system32\find /?' execution failed with error code 1
>>>>>>>
>>>>>>> They all work, i.e. they give the required help message, under Rterm
>>>>>>> and when I issue this from the Windows console it works:
>>>>>>> C:\windows\system32\find /?
>>>>>>>
>>>>>>>
>>>>>>> 2010/1/7 Uwe Ligges<ligges at statistik.tu-dortmund.de>:
>>>>>>>>
>>>>>>>> On 07.01.2010 02:04, Gabor Grothendieck wrote:
>>>>>>>>>
>>>>>>>>> If you have C:\Rtools\bin on your PATH note that it contains a
>>>>>>>>> UNIX-like find utility that conflicts with the find utility in
>>>>>>>>> Windows.  If that is the problem then remove that from your PATH
>>>>>>>>> and
>>>>>>>>> then run the batch file.
>>>>>>>>>
>>>>>>>>> The batchfiles distribution at http://batchfiles.googlecode.com
>>>>>>>>>  has
>>>>>>>>> utilities (Rgui.bat, R.bat, Rtools.bat, etc.) that will
>>>>>>>>> automatically
>>>>>>>>> add C:\Rtools\bin to your path temporarily or only while R is
>>>>>>>>> running
>>>>>>>>> so that you can leave it off your PATH.
>>>>>>>>
>>>>>>>> I guess it's the use of system() rather than shell() that causes the
>>>>>>>> problem. Under Windows, you have to use shell in order to start a
>>>>>>>> command
>>>>>>>> interpreter.
>>>>>>>>
>>>>>>>> Uwe Ligges
>>>>>>>>
>>>>>>>>
>>>>>>>>> On Wed, Jan 6, 2010 at 6:51 PM, John Schexnayder<jschex at us.ibm.com>
>>>>>>>>>  wrote:
>>>>>>>>>>
>>>>>>>>>> This is sort of a strange bug.  Not show stopping, but annoying.
>>>>>>>>>>  I
>>>>>>>>>> was
>>>>>>>>>> wondering if anyone else has noticed this and reported it before I
>>>>>>>>>> submit
>>>>>>>>>> a bug report.
>>>>>>>>>>
>>>>>>>>>> I noticed while running the RGui and attempting to debug one of my
>>>>>>>>>> scripts
>>>>>>>>>> that I encountered a Windows error informing me that "Find String
>>>>>>>>>> [grep]
>>>>>>>>>> Utility has encountered a problem and needs to close."  It is
>>>>>>>>>> being
>>>>>>>>>> generated by a call to a DOS batch file which contains a call to
>>>>>>>>>> Find.exe.
>>>>>>>>>>  It can be reproduced by simply typing  "System("find")" in RGui.
>>>>>>>>>>  What I
>>>>>>>>>> found strange is that I have been running this script daily
>>>>>>>>>> without
>>>>>>>>>> this
>>>>>>>>>> problem for months.  I now realize I never ran that portion of the
>>>>>>>>>> script
>>>>>>>>>> while in RGui.exe.  It has always run in batch mode which is done
>>>>>>>>>> by
>>>>>>>>>> Rterm.exe.
>>>>>>>>>>
>>>>>>>>>> I have tried this on three separate machines now all running
>>>>>>>>>> Windows
>>>>>>>>>> XP
>>>>>>>>>> SP3, with versions of R 2.8.1 and R 2.10.1  If executing
>>>>>>>>>> "System("find")
>>>>>>>>>> under RGui, an error window for the Find String Utility is
>>>>>>>>>> generated
>>>>>>>>>> and
>>>>>>>>>> the command is not exectuted.  If the same command is issued in
>>>>>>>>>> Rterm
>>>>>>>>>> the
>>>>>>>>>> expected "FIND: Parameter format not correct" message is properly
>>>>>>>>>> returned.
>>>>>>>>>>
>>>>>>>>>> It doesn't seem an important bug, but it could be the canary in
>>>>>>>>>> the
>>>>>>>>>> mine
>>>>>>>>>> for a larger problem somewhere down the road.
>>>>>>>>>>
>>>>>>>>>> Re,
>>>>>>>>>> John Schexnayder
>>>>>>>>>>
>>>>>>>>>> IBM Tape Manufacturing - Information Technology
>>>>>>>>>> San Jose, CA  95138
>>>>>>>>>> JSchex at us.ibm.com
>>>>>>>>>>
>>>>>>>>>>      [[alternative HTML version deleted]]
>>>>>>>>>>
>>>>>>>>>> ______________________________________________
>>>>>>>>>> R-help at r-project.org mailing list
>>>>>>>>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>>>>>>>>> PLEASE do read the posting guide
>>>>>>>>>> http://www.R-project.org/posting-guide.html
>>>>>>>>>> and provide commented, minimal, self-contained, reproducible code.
>>>>>>>>>>
>>>>>>>>> ______________________________________________
>>>>>>>>> R-help at r-project.org mailing list
>>>>>>>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>>>>>>>> PLEASE do read the posting guide
>>>>>>>>> http://www.R-project.org/posting-guide.html
>>>>>>>>> and provide commented, minimal, self-contained, reproducible code.
>>>>>>
>>>>>> ______________________________________________
>>>>>> R-help at r-project.org mailing list
>>>>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>>>>> PLEASE do read the posting guide
>>>>>> http://www.R-project.org/posting-guide.html
>>>>>> and provide commented, minimal, self-contained, reproducible code.
>>>
>
>



More information about the R-help mailing list