Subject: Lseek'ing backwards with SEEK_CUR?
To: None <current-users@netbsd.org>
From: Rafal Boni <r-boni@uiuc.edu>
List: current-users
Date: 12/14/1994 01:33:04
	Is lseek'ing backwards with SEEK_CUR supported, or expected to work?

	I have a program that writes out records to a file, sometimes needing
	to insert them in the middle of the file.  Invariably, this program
	will close the file at some point, resulting in a *HUGE* file that's
	backfiled with zeros.

	The program does this seeking about like this:

		lseek(fd, - RECSIZE, SEEK_CUR)

	If I replace that with the following two lines of code, life seems
	much better:	[ie, the file is correct size, etc.]

		curpos = lseek(fd, 0, SEEK_CUR);
		lseek(fd, curpos - RECSIZE, SEEK_SET);

	*EITHER* way, inserting printf's that indicate current file positions
	[by means of printf("%qd", lseek(fd, 0, SEEK_CUR))] indicate that the
	file pointer is in the correct place.

					Any comments appreciated,
							--rafal

+--------------------------------------------------------+ +------------------+
| In search of the stress-strain relationship governing  |/|       Rafal Boni |
| students of mechanics... Experimentally.               |\|  r-boni@uiuc.edu |
+--------------------------------------------------------+ +------------------+