Thomas Nyberg
2014-Oct-24 22:37 UTC
[R] readChar maxing out at screen width when using gnu screen?
I am running: R version 3.1.1 (2014-07-10) -- "Sock it to Me" Platform: x86_64-unknown-linux-gnu (64-bit) It is an Amazon 64 Linux instance with the following version: 3.3.4-5.fc17.x86_64 I compiled R myself as well as the newest version of gnu screen. I create a file with a couple hundred bytes by doing the following (using bash): > for i in {1..100}; do echo $i >> testfile; done Next I load R and run the following: > readChar('testfile', 200) [1] "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n2" That output is exactly the width of the screen (as in the window in gnu screen). If I double the screen width (which I can do by removing my split screen mode), it will return the following string: [1] "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n" Now my normal belief here would be that screen is somehow causing the bug, but honestly that makes no sense at all. What global changes could screen possibly make which would cause readChar to ignore its parameter telling it how many numbers to read in? I mean writing this in C would be a few lines and touch nothing that screen could affect. Can somebody reproduce this? If not, another solution to my issue would be if somebody could tell me another way to read in an entire file as a string. The following is what I'm using which is causing the problem: readfile <- function(filepath) { text <- readChar(filepath, file.info(filepath)$size) text } Thanks for any help. Cheers. Thomas