My solution would be:

1. memory map the file (either use boost.interprocess or trivially hand-roll a few OS calls)
2. build an iterator pair (i.e. char *) representing the extent of the mapped memory,
3. call std::make_reverse_iterator on the iterator pair
4. use a standard algorithm
  

On Wed, 13 Feb 2019 at 06:09, Gavin Lambert via Boost-users <boost-users@lists.boost.org> wrote:
On 13/02/2019 05:33, Sean Farrow wrote:
> Is there an easy way to read a file in reverse using boost::iostreams?
>
> I’ve got a case where I need to detect whether text is present and it’s
> closer to the end of the file than the beginning.

You should be able to read the length of the stream, then seek to a
position near the end and read forwards from there.

Of course, you need to know a suitable value to use as the range where
you expect the value to be present; if you get this wrong then you'll
either have a false negative or you'll waste a bit more time jumping
back further and trying again.
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
https://lists.boost.org/mailman/listinfo.cgi/boost-users


--
Richard Hodges
hodges.r@gmail.com
office: +442032898513
home: +376841522
mobile: +376380212