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;)

Reply via email to