[R] Calling FING.EXE under RGui.EXE for windows.
Duncan Murdoch
murdoch at stats.uwo.ca
Sun Jan 10 19:51:05 CET 2010
On 10/01/2010 1:42 PM, Gabor Grothendieck wrote:
> 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.
This list is archived, so there's a record. But I think this is a find
bug, not an R bug, so it doesn't make sense to add it to the R bug list.
Duncan Murdoch
>
> 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