Roland Mainz wrote:
> Casper.Dik at Sun.COM wrote:
> > >I would propose something like a new builtin command called "streamctl"
> > >(stream control) which has sub-commands for testing whether a stream is
> > >seekable, do various seeking operations (seek_to_position, seek_hole,
> > >seek_data), list_substreams and split_substreams (the last two things
> > >are for SCTP&co.).
> > >Comments/suggestions/ideas welcome...
> >
> > Why not just an "lseek" command?
>
> Sounds good (except that it lacks the SCTP stuff, but I guess it should
> better be offloaded to something like "sctpstreamctl"...) ... I'll write
> a proposal...
-- snip --
NAME
lseek(1) - move file pointer in a shell stream
SYNOPSIS
lseek fildes command [offset]
DESCRIPTION
The lseek shell builtin function sets the file pointer
associated with the open file descriptor specified by fildes
as follows:
o If command is SEEK_SET, the pointer is set to offset
bytes.
o If command is SEEK_CUR, the pointer is set to its
current location plus offset.
o If command is SEEK_END, the pointer is set to the size
of the file plus offset.
o If command is SEEK_HOLE, the pointer is set to the
next hole (in a sparse file) past "offset".
o If command is SEEK_DATA, the pointer is set to the
next data (in a sparse file) past "offset".
o If command is IS_SEEKABLE lseek returns 0 as exit result
if the stream is seekable, 1 otherwise.
o If command is TELL lseek returns the current file position
to stdout
...
-- snip --
At this point I hit a couple of problems:
- How should we handle the return value ? lseek(2) returns the current
file position - should lseek(1) simply return the current file position
to stdout (and add a -q option to make lseek(1) "quiet") ?
- Currently there is only support for seeking n-bytes. But what about
characters in multibyte locales (CC:'ing Ienup Sung <Ienup.Sung at Sun.COM>
and i18n-discuss at opensolaris.org for that issue) ?
- Are there other seek-like operations which should be added here ?
- What about syntax - should "command" come before "offset" or should
the traditional lseek(2) syntax ordering used here (e.g. "lseek fildes
offset command" (that's a question for David/Glenn/Casper)) ?
Finally the compatibility question: Is there *ANY* operating system
which provides a "lseek" command ?
----
Bye,
Roland
--
__ . . __
(o.\ \/ /.o) roland.mainz at nrubsig.org
\__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer
/O /==\ O\ TEL +49 641 7950090
(;O/ \/ \O;)