I was using readLines to read data from a file which is being written to by another process. readLines documentation says "If the connection is open it is read from its current position". With R 4.4.1 on Linux 5.15.160 this is true but does not seem to be the case as far as R 4.4.1 on MacOS 12.7.6 (Intel) is concerned. Here, the first write to the file is read correctly but subsequent reads return nothing. The minimal program below shows the behaviour and produces the following results:
Linux: input 1: lines written/read: 4 / 4 input 2: lines written/read: 3 / 3 input 3: lines written/read: 2 / 2 MacOS: input 1: lines written/read: 4 / 4 input 2: lines written/read: 3 / 0 input 3: lines written/read: 2 / 0 I have searched NEWS and found only https://bugs.r-project.org/show_bug.cgi?id=18555, but I am not specifying an encoding so not sure whether it is relevant or not. I also tried with a 1 second delay between flush and read, but this had no effect. I have found an alternative, scan with skip of the number lines already read, and this works on both Linux and MacOS. But I would still like to know how to have readLines work with open connections on MacOS. Regards, Martin ## Program to demonstrate the behaviour ## input data rL <- list(paste0("Line ", 1:4), paste0("Line ", 1:3), paste0("Line ", 1:2)) ## create an empty file and open write and read connections to the file close(file("rL.log",open="w")) rLconn.w <- file("rL.log", open="a") rLconn.r <- file("rL.log", open="r") ## write the test data and read it for (i in 1:3) { writeLines(rL[[i]], rLconn.w) flush(rLconn.w) out <- readLines(rLconn.r, warn=FALSE) writeLines(c(paste0("input ", i, ": lines", " written/read: ", length(rL[[i]]), " / ", length(out)))) } close(rLconn.w) close(rLconn.r) ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide https://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.