[R] seek(), Windows and Cygwin (was "a UNIX vs. Windows package question, please")

Mike Miller mbmiller at umn.edu
Tue Jan 13 19:51:18 CET 2015

On Fri, 9 Jan 2015, Duncan Murdoch wrote:

> On 09/01/2015 5:32 PM, Erin Hodgess wrote:
>> Hello again.
>> Here is another question that I am puzzled about:  I had the 
>> (incorrect) impression that if I had Rtools on a Windows machine that I 
>> could use any tar.gz package.  However, that is not true.
>> In particular, I was looking at the rPython package.  I do indeed have 
>> Python on this machine. But when I did R CMD INSTALL rPython, I got an 
>> error message that said, "this is a Unix package".  Interesting.
>> Should I just stay with my Ubuntu laptop and behave?
> No, but you should not use packages that misbehave.  The ideal R package 
> will run on all platforms where R runs.  Some require effort from the 
> user to provide prerequisites, but no good R package runs only on one 
> platform.

That reminds me to ask if anyone here can provide more details about the 
limitations of seek().  I'm working on some functions that use seek() and 
I may have to tell Windows users not to use these functions.

>From the manual page for seek():


"Use of seek on Windows is discouraged. We have found so many errors in 
the Windows implementation of file positioning that users are advised to 
use it only at their own risk, and asked not to waste the R developers' 
time with bug reports on Windows' deficiencies."

My question is about whether this limitation is caused by the Windows 
filesystem, typically NTFS, or if the problem is in the Windows OS.  If 
the problem were in the filesystem, maybe the docs would have said so 
because NTFS can be used on other platforms.

Secondly, can this problem be addressed at all by using Cygwin?  I know 
that Cygwin is running in Windows, so it's still Windows, but R might be 
compiled differently, so I just thought I'd ask!  ;-)

And it doesn't matter which Windows version is used?

Finally, if the problem is entirely in Windows, and R cannot possibly 
overcome it, I suppose that means that it is impossible to write a program 
to run under Windows that can seek (is it fseek in C?) reliably to a 
position in a file.  If that is the case, it's going to be hard to develop 
good systems for managing bioinformatic data on Windows.

Thanks in advance.


Michael B. Miller, Ph.D.
University of Minnesota

More information about the R-help mailing list