From owner-freebsd-hackers@FreeBSD.ORG Wed Nov 16 23:22:09 2011 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 81B17106566B for ; Wed, 16 Nov 2011 23:22:09 +0000 (UTC) (envelope-from joerg@britannica.bec.de) Received: from mo-p00-ob6.rzone.de (mo-p00-ob6.rzone.de [IPv6:2a01:238:20a:202:53f0::1]) by mx1.freebsd.org (Postfix) with ESMTP id 0597C8FC0A for ; Wed, 16 Nov 2011 23:22:08 +0000 (UTC) X-RZG-AUTH: :JiIXek6mfvEEUpFQdo7Fj1/zg48CFjWjQv0cW+St/nW/auYssSp3n4k1Y2DJ X-RZG-CLASS-ID: mo00 Received: from britannica.bec.de (ip-2-207-88-10.web.vodafone.de [2.207.88.10]) by smtp.strato.de (klopstock mo36) (RZmta 26.10 AUTH) with (DHE-RSA-AES128-SHA encrypted) ESMTPA id x04ae0nAGLqTQp for ; Thu, 17 Nov 2011 00:21:54 +0100 (MET) Received: by britannica.bec.de (sSMTP sendmail emulation); Thu, 17 Nov 2011 00:21:52 +0100 Date: Thu, 17 Nov 2011 00:21:52 +0100 From: Joerg Sonnenberger To: freebsd-hackers@freebsd.org Message-ID: <20111116232152.GC21793@britannica.bec.de> Mail-Followup-To: freebsd-hackers@freebsd.org References: <20111115202450.GA73512@freebsd.org> <20111116102239.GA2687@britannica.bec.de> <20111116131428.GA40723@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20111116131428.GA40723@freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) Subject: Re: easy way to determine if a stream or fd is seekable X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Nov 2011 23:22:09 -0000 On Wed, Nov 16, 2011 at 01:14:28PM +0000, Alexander Best wrote: > On Wed Nov 16 11, Joerg Sonnenberger wrote: > > On Tue, Nov 15, 2011 at 08:24:50PM +0000, Alexander Best wrote: > > > one of the things i'm missing is an easy way to determine, whether a stream or > > > fd is seekable. i checked the dd(1) and hd(1) sources and those tools are > > > performing so much stuff just to find out if this is the case, and they still > > > are doing a very poor job. > > > > Isn't the primary issue that FreeBSD doesn't properly report errors for > > lseek(2)? I think you should start from that and not hack around the > > fallout... > > what do you mean? lseek(2) returns -1, when the file descriptor is not > seekable. i fired lseek(2) at all sorts of file types (dir, sockets, ...) > and it always returned the correct result. If that were the case, you wouldn't need your flag to detect seek support. But e.g. some devices silently ignore seek requests without reporting errors. At least that is what I remember from the last time this has brought up. Joerg