Rev 25360 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
\name{seek}\alias{seek}\alias{seek.connection}\alias{truncate}\alias{truncate.connection}\alias{isSeekable}\title{Functions to Reposition Connections}\description{Functions to re-position connections.}\usage{seek(con, \dots)\method{seek}{connection}(con, where = NA, origin = "start", rw = "", \dots)isSeekable(con)truncate(con, \dots)}\arguments{\item{con}{a connection.}\item{where}{integer. A file position (relative to the originspecified by \code{origin}), or \code{NA}.}\item{rw}{character. Empty or \code{"read"} or \code{"write"},partial matches allowed.}\item{origin}{character. One of \code{"start"}, \code{"current"},\code{"end"}.}\item{\dots}{further arguments passed to or from other methods.}}\details{\code{seek} with \code{where = NA} returns the current byte offsetof a connection (from the beginning), and with a non-missing \code{where}argument the connection is re-positioned (if possible) to thespecified position. \code{isSeekable} returns whether the connectionin principle supports \code{seek}: currently only (possiblycompressed) file connections do.#ifdef windowsThe value returned by \code{seek(where=NA)} appears to be unreliableon Windows systems, at least for text files. Clipboard connectionscan seek too.#endifFile connections can be open for both writing/appending, in which case\R keeps separate positions for reading and writing. Which \code{seek}refers to can be set by its \code{rw} argument: the default is thelast mode (reading or writing) which was used. Most files areonly opened for reading or writing and so default to that state.If a file is open for reading and writing but has not been used, thedefault is to give the reading position (0).The initial file position for reading is always at the beginning.The initial position for writing is at the beginning of the filefor modes \code{"r+"} and \code{"r+b"}, otherwise at the end of thefile. Some platforms only allow writing at the end of the file inthe append modes.\code{truncate} truncates a file opened for writing at its currentposition. It works only for \code{file} connections, and is notimplemented on all platforms.}\value{\code{seek} returns the current position (before any move),as a byte offset, if relevant, or \code{0} if not.\code{truncate} returns \code{NULL}: it stops with an error ifit fails (or is not implemented).\code{isSeekable} returns a logical value, whether the connection issupport \code{seek}.}\seealso{\code{\link{connections}}}\keyword{file}\keyword{connection}