Daniel Sabanés Bové
2009-Jan-04 17:54 UTC
[Rd] cat cannot write more than 10000 characters? [R 2.8.1]
Hi, during the examination of a Sweave hang-up inside an odfWeave call (OOo XMLs have looong lines) I have discovered that my cat function cannot write more than 10000 characters to a text file. Otherwise, the internal C code causes a hang-up, which can only be stopped with a quit signal that terminates the R session. Is this behavior normal? Code to reproduce this: testChunk <- paste(rep("a", 10000 + 1), ## delete "+ 1" to be successful collapse="") output <- tempfile() cat(testChunk, sep = "\n", file = output, append = TRUE) My sessionInfo: R version 2.8.1 (2008-12-22) i686-pc-linux-gnu (actually the latest openSuse 11.1) locale: LC_CTYPE=de_DE.UTF-8;LC_NUMERIC=C;LC_TIME=de_DE.UTF-8;LC_COLLATE=de_DE.UTF-8;LC_MONETARY=C;LC_MESSAGES=de_DE.UTF-8;LC_PAPER=de_DE.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=de_DE.UTF-8;LC_IDENTIFICATION=C Thanks in advance, Daniel
Prof Brian Ripley
2009-Jan-05 09:31 UTC
[Rd] cat cannot write more than 10000 characters? [R 2.8.1]
On Sun, 4 Jan 2009, Daniel Saban?s Bov? wrote:> Hi, > > during the examination of a Sweave hang-up inside an odfWeave call (OOo > XMLs have looong lines) I have discovered that my cat function cannot > write more than 10000 characters to a text file. Otherwise, the internalYou mean on a single line?> C code causes a hang-up, which can only be stopped with a quit signal > that terminates the R session. Is this behavior normal?No, works for me on Mac OS X and x86_64 Fedora 8 (as does 10x larger). Can you run this under a debugger and find where it is going wrong for you?> Code to reproduce this: > > testChunk <- paste(rep("a", 10000 + 1), ## delete "+ 1" to be successful > collapse="") > output <- tempfile() > cat(testChunk, sep = "\n", file = output, append = TRUE)We have writeLines() for that and it is more efficient, especially if you keep a connection open.> My sessionInfo: > > R version 2.8.1 (2008-12-22) > i686-pc-linux-gnu (actually the latest openSuse 11.1) > locale: > LC_CTYPE=de_DE.UTF-8;LC_NUMERIC=C;LC_TIME=de_DE.UTF-8;LC_COLLATE=de_DE.UTF-8;LC_MONETARY=C;LC_MESSAGES=de_DE.UTF-8;LC_PAPER=de_DE.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=de_DE.UTF-8;LC_IDENTIFICATION=C > > Thanks in advance, > Daniel-- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595