[R] Antwort: Re: Antwort: Re: Antwort: Re: Re: sink(): Cannot open file (SOLVED)
G.Maubach at weinwolf.de
G.Maubach at weinwolf.de
Thu May 12 10:13:59 CEST 2016
Hi Henrik, Jim, Sarah, Duncan,
Hi All,
I have tried the built-in solution using PowerShell:
$lockedFile="C:\Windows\System32\wshtcpip.dll"
Get-Process | foreach{$processVar = $_;$_.Modules | foreach{if($_.FileName
-eq $lockedFile){$processVar.Name + " PID:" + $processVar.id}}}
It did not show any processes.
Then I tried the solution using "RessourceMonitor". There I found two
processes:
rstudio.exe
rsession.exe
Right-clicking on rstudio.exe and selecting "Warteschlange analysieren" (=
analyse queue?) showed nothing. Right-clicking on rsession.exe and
selecting "Warteschlage" said:
"Mindestens ein Thread von rsession.exe wartet auf die Fertigstellung von
Netzwerk E/A". (= "At least one thread of "rsession.exe" is waiting for
finishing a network i/o operation").
Putting rsession.exe into the search field of the handles tap of
RessourceMonitor gave no results. No handles were identified.
I can not follow the suggestions where installation of software is
required due to security rules of the company I work for.
I had a look at different R versions on my machine:
1) R i386 3.2.2
2) R i386 3.2.4 (revised)
3) R i386 3.2.5
4) R x54 3.2.2
5) R x64 3.2.4 (revised)
6) R x64 3.2.5
I did
## capture all the output to a file.
zz <- file("C:/Temp/all.Rout", open = "wt")
sink(zz)
sink(zz, type = "message")
try(log("a"))
## back to the console
sink(type = "message")
sink()
unlink("C:/Temp/all.Rout")
on R i386 3.2.2 and R x64 3.2.2 directly without RStudio. In both cases
the file was locked.
Adding
close(zz)
solved the problem in both versions.
Encouraged by this I tired (successivly refered to as "complete code")
## capture all the output to a file.
zz <- file("C:/Temp/all.Rout", open = "wt")
sink(zz)
sink(zz, type = "message")
try(log("a"))
## back to the console
sink(type = "message")
sink()
unlink("C:/Temp/all.Rout")
close(zz)
on R i386 3.2.4 (revised) and R x64 3.2.4 (revised) without RStudio. Works
in both cases. The same with R i386 3.2.5 and R x64 3.2.5 each without
RStudio.
It did the same with RStudio altering the R version in the RStudio session
using "complete code". The results are:
R i386 3.2.2: OK
R. x64 3.2.2: OK
R i386 3.2.4 (revised): OK
R x64 3.2.4 (revised): OK
R i386 3.2.5: OK
R x64 3.2.5: OK
This got me lost. I had tried the complete code the last days a hundred
times. It never worked.
Then I restarted my machine powering up RStudio x64 3.2.5 using the
"complete code" and ... it worked.
I have no idea what was wrong the last days.
As far as I can say today the documentation of ?sink in R is currently
## capture all the output to a file.
zz <- file("all.Rout", open = "wt")
sink(zz)
sink(zz, type = "message")
try(log("a"))
## back to the console
sink(type = "message")
sink()
file.show("all.Rout")
and should be - in my opinion - supplemented with
close(zz).
Any thoughts?
Kind regards
Georg
Von: Henrik Bengtsson <henrik.bengtsson at gmail.com>
An: G.Maubach at weinwolf.de,
Kopie: Duncan Murdoch <murdoch.duncan at gmail.com>, "r-help at r-project.org"
<r-help at r-project.org>
Datum: 11.05.2016 21:48
Betreff: Re: [R] Antwort: Re: Antwort: Re: Re: sink(): Cannot open
file
Sounds like it would be helpful to find out exactly which process is
holding on to the file in order to figure out what's going on. From a
quick look, it seems that
http://superuser.com/questions/117902/find-out-which-process-is-locking-a-file-or-folder-in-windows
gives some useful info on how to track down the process that looks the
file.
/Henrik
On Wed, May 11, 2016 at 9:47 AM, <G.Maubach at weinwolf.de> wrote:
> Duncan,
>
> thanks for the hint.
>
> I have done it correctly in R fashion
>
> ## capture all the output to a file.
> zz <- file("C:/Temp/all.Rout", open = "wt")
> sink(zz)
> sink(zz, type = "message")
> try(log("a"))
> ## back to the console
> sink(type = "message")
> sink()
> unlink("C:/Temp/all.Rout")
>
> But the error persits.
>
> Kind regards
>
> Georg
>
>
>
>
> Von: Duncan Murdoch <murdoch.duncan at gmail.com>
> An: John Sorkin <jsorkin at grecc.umaryland.edu>, drjimlemon at gmail.com,
> G.Maubach at weinwolf.de,
> Kopie: r-help at r-project.org
> Datum: 10.05.2016 19:03
> Betreff: Re: [R] Antwort: Re: Re: sink(): Cannot open file
>
>
>
> On 10/05/2016 11:15 AM, John Sorkin wrote:
>> George,
>> I do not know what operating system you are working with, but when I
use
> sink() under windows, I need to specify a valid path which I don't see
in
> your code. I might, for example specify:
>>
>> sink("c:\myfile.txt")
>
> Note that the backslash should be doubled (so it isn't interpreted as an
> escape for the "m" that follows it), or replaced with a forward slash.
>
> Duncan Murdoch
>
>> R code goes here
>> sink()
>>
>> with the expectation that I would create a file myfile.txt that would
> contain the output of my R program.
>>
>> John
>>
>>
>> John David Sorkin M.D., Ph.D.
>> Professor of Medicine
>> Chief, Biostatistics and Informatics
>> University of Maryland School of Medicine Division of Gerontology and
> Geriatric Medicine
>> Baltimore VA Medical Center
>> 10 North Greene Street
>> GRECC (BT/18/GR)
>> Baltimore, MD 21201-1524
>> (Phone) 410-605-7119
>> (Fax) 410-605-7913 (Please call phone number above prior to faxing)
>> >>> <G.Maubach at weinwolf.de> 05/10/16 11:10 AM >>>
>> Hi Jim,
>>
>> I tried:
>>
>> sink("all.Rout")
>> try(log("a"))
>> sink()
>>
>> The program executes without warning or error. The file "all.Rout" is
>> begin created. Nothing will be written to it. The file is accessable
>> rights after the execution of the program by notepad.exe.
>>
>> The program
>>
>> zz <- file("all.Rout", open = "wt")
>> sink(zz, type = "message")
>> try(log("a"))
>> sink()
>> close(zz)
>> unlink(zz)
>>
>> creates the file, does not write anything to it and is not accessable
>> after program execution in R with notepad.exe.
>>
>> Any ideas what happens behind the szenes?
>>
>> Kind regards
>>
>> Georg
>>
>>
>>
>>
>> Von: Jim Lemon <drjimlemon at gmail.com>
>> An: G.Maubach at weinwolf.de,
>> Kopie: r-help mailing list <r-help at r-project.org>
>> Datum: 10.05.2016 13:16
>> Betreff: Re: Re: [R] sink(): Cannot open file
>>
>>
>>
>> Have you tried:
>>
>> sink("all.Rout")
>> try(log("a"))
>> sink()
>>
>> Jim
>>
>> On Tue, May 10, 2016 at 9:05 PM, <G.Maubach at weinwolf.de> wrote:
>> > Hi Jim,
>> >
>> > thanks for your reply.
>> >
>> > ad 1)
>> > "all.Rout" was created in the correct directory. It exists properly
> with
>> > correct file properties on Windows, e.g. creation date and time and
> file
>> > size information.
>> >
>> > ad 2)
>> > I can not access the file with Notepad.exe directly after it was
> created
>> > by R. The error message is (translated):
>> >
>> > "Cannot access file "all.Rout". The file is opened by another
> process."
>> >
>> > ad 3)
>> > If I close R completely the file access is released. Then I can read
> the
>> > file using Notepad.exe. The contents is:
>> >
>> > Error in log("a") : non-numeric argument to mathematical function
>> >
>> > I tried
>> >
>> > close(zz)
>> >
>> > but the error persists.
>> >
>> > To me it looks like R is still accessing the file and not releasing
> the
>> > connection for other programs. close(zz) should have solved the
> problem
>> > but unfortantely it doesn't.
>> >
>> > What else could I try?
>> >
>> > Kind regards
>> >
>> > Georg
>> >
>> >
>> >
>> >
>> > Von: Jim Lemon <drjimlemon at gmail.com>
>> > An: G.Maubach at weinwolf.de,
>> > Kopie: r-help mailing list <r-help at r-project.org>
>> > Datum: 10.05.2016 12:50
>> > Betreff: Re: [R] sink(): Cannot open file
>> >
>> >
>> >
>> > Hi Georg,
>> > I don't suppose that you have:
>> >
>> > 1) checked that the file "all.Rout" exists somewhere?
>> >
>> > 2) if so, looked at the file with Notepad, perhaps?
>> >
>> > 3) let us in on the secret by pasting the contents of "all.Rout" into
>> > your message if it is not too big?
>> >
>> > At a guess, trying:
>> >
>> > close(zz)
>> >
>> > might get you there.
>> >
>> > Jim
>> >
>> > On Tue, May 10, 2016 at 5:25 PM, <G.Maubach at weinwolf.de> wrote:
>> >> Hi All,
>> >>
>> >> I would like to route the output to a file using sink(). When using
> the
>> >> example from the ?sink documentation:
>> >>
>> >> sink("sink-examp.txt")
>> >> i <- 1:10
>> >> outer(i, i, "*")
>> >> sink()
>> >> unlink("sink-examp.txt")
>> >>
>> >> ## capture all the output to a file.
>> >> zz <- file("all.Rout", open = "wt")
>> >> sink(zz)
>> >> sink(zz, type = "message")
>> >> try(log("a"))
>> >> ## back to the console
>> >> sink(type = "message")
>> >> sink()
>> >> file.show("all.Rout")
>> >>
>> >> I can not open the file in Windows Explorer. The error message is:
>> >>
>> >> "Cannot open file. File is in use be another proces."
>> >>
>> >> How can I close the file in a manner that I can open it right after
> it
>> > was
>> >> created?
>> >>
>> >> Kind regards
>> >>
>> >> Georg
>> >>
>> >> ______________________________________________
>> >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> >> 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 -- To UNSUBSCRIBE and more, see
>> 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.
>> Confidentiality Statement:
>> This email message, including any attachments, is for ...{{dropped:14}}
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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