head 1.4; access; symbols SFIO_1999:1.1.1.2 SFIO_1998:1.1.1.2 SFIO_1997:1.1.1.1 ATT:1.1.1; locks; strict; comment @# @; 1.4 date 99.11.12.15.28.19; author rse; state Exp; branches; next 1.3; 1.3 date 99.09.11.13.40.01; author rse; state Exp; branches; next 1.2; 1.2 date 99.09.11.12.42.07; author rse; state Exp; branches; next 1.1; 1.1 date 96.11.21.21.05.31; author rse; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 96.11.21.21.05.31; author rse; state Exp; branches; next 1.1.1.2; 1.1.1.2 date 98.03.22.03.03.30; author rse; state Exp; branches; next ; desc @@ 1.4 log @*** empty log message *** @ text @ ___ ___ ___ _ __ / _ \/ __/ __| '_ \ Open Structured Server Platform (OSSP) | (_) \__ \__ \ |_) | Safe/Fast I/O (Sfio) Library _\___/|___/___/ .__/________________________________________________ |_| OSSP Sfio is a portable library for managing I/O streams based on AT&T's Sfio 1999. It provides similar functionality to the ANSI C Standard I/O functions known collectively as Stdio. However, it has a distinct interface and is generally faster and more robust than most Stdio implementations. Sfio also introduces a number of new features and concepts beyond Stdio stream I/O processing. @ 1.3 log @*** empty log message *** @ text @d1 12 a12 38 Sfio - Safe/Fast IO Library http://www.research.att.com/sw/tools/sfio/ ABSTRACT Sfio is a portable library for managing I/O streams. It provides similar functionality to the ANSI C Standard I/O functions known collectively as Stdio. However, it has a distinct interface and is generally faster and more robust than most Stdio implementations. Sfio also introduces a number of new features and concepts beyond Stdio stream I/O processing: * Automatic locking to avoid concurrent stream accesses, * I/O disciplines to pre/post-process read/write data from/to streams, * Stream stacking for recursive processing of nested streams, * Stream pooling for automatic stream synchronization when I/O operations are performed on different streams, * Buffer reservation for safe access to the internal buffers of streams, * Robust handling of variable-sized records, and * Extensible printf/scanf-like formatting I/O operations. DIRECTORY HIERARCHY: sfio: source code for Sfio. sfio_f: function versions of sfio macros. sfio_dc: a collection of functions to create useful disciplines. sfio_t: a set of regression tests - executable with "runtest". stdio_s: the source level compatibility package. stdio_b: the binary level compatibility package. CORRESPONDENCE: Kiem-Phong Vo AT&T Labs - Research 180 Park Avenue Florham Park, NJ 07932 E-Mail: kpv@@research.att.com WWW: http://www.att.com/technology/technologists/fellows/vo.html @ 1.2 log @Incorporate stuff from RSE's Sfio98 variant @ text @d5 17 @ 1.1 log @Initial revision @ text @a0 1 This directory contains the source of Sfio, the safe/fast I/O library. d2 2 a3 1 There are a few subdirectories: d5 1 a5 4 Sfio_f: function versions of sfio macros. Stdio_s: the source level compatibility package. Stdio_b: the binary level compatibility package. Sfio_t: a set of regression tests - executed with "runtest". d7 6 a12 1 There are two make files: Makefile for nmake and makefile for old make. d14 8 a21 2 If you run into problems or have ideas for enhancement, please let me know. Good luck and have fun. a22 4 Kiem-Phong Vo AT&T Labs e-mail: kpv@@research.att.com Phone: (908) 582-4869 @ 1.1.1.1 log @Import of Sfio1997 @ text @@ 1.1.1.2 log @Import of Sfio1998 @ text @d1 1 a1 1 DIRECTORY HIERARCHY: d3 1 a3 1 This directory hierarchy has the source of Sfio, the Safe/Fast I/O library. d5 4 a8 7 . : source code for Sfio. ./features: source code for generating configuration parameters. ./Sfio_f: function versions of sfio macros. ./Stdio_s: the source level compatibility package. ./Stdio_b: the binary level compatibility package. ./Sfio_dc: a collection of functions to create useful disciplines. ./Sfio_t: a set of regression tests - executable with "runtest". d10 1 a10 1 SOFTWARE CONSTRUCTION: d12 2 a13 6 There are two make files, Makefile for Glenn Fowler's nmake and makefile for old make. The build procedure is based on the iffe language for automatic configuration. An iffe interpreter and its manual pages are included in this code distribution. See the files in ./features for examples of iffe probes to generate configuration parameters. d15 4 a18 30 SFIO DISCIPLINES: IO disciplines allow applications to extend stream data processing. See the Sfio manual pages for detail on creating discipline structures and inserting them into streams. The directory Sfio_dc contains a number of useful disciplines, including one to uncompress a file compressed by the Unix compress program and one to make reading DOS text files more comfortable by translating \r\n to \n. Disciplines are reusable code, please contribute any interesting disciplines that you come up with. This is best done by sending such code to me at the address below. Sharing reusable code means that the name space must be managed. Therefore, I recommend that each discipline package provides the following public interface: Sfdisc_t* sfdcXXX(Sfio_t* f, other arguments): Create a discipline of the type XXX and insert it into the stream f. For example, the below call create a discipline that make the stream "f" act as if it's the union of the "n" streams given in "array". sfdcunion(Sfio_t* f, Sfio_t** array, int n); CORRESPONDENCE: Comments, etc. should be sent to: Phong Vo AT&T Labs - Research 180 Park Avenue Florham Park, NJ 07932 e-mail: kpv@@research.att.com @