Newsgroups: comp.unix.programmer Path: utzoo!telly!druid!darcy From: darcy@druid.uucp (D'Arcy J.M. Cain) Subject: Re: Why use U* over VMS Organization: D'Arcy Cain Consulting, West Hill, Ontario Date: Wed, 31 Oct 90 14:19:54 GMT Message-ID: <1990Oct31.141954.22736@druid.uucp> References: <1990Oct25.160937.28144@edm.uucp> <1089@dg.dg.com> In article <1089@dg.dg.com> uunet!dg!lewine writes: > [...] > In UNIX it is not possible to support anything but flat ASCII > files without special code in the application. That is why > most UNIX systems have only flat ASCII files. This may be fine > for software engineering but it is not what the Data Processing > world wants. > I can't speak for everyone who programs in Unix but in my case I started programming using fixed length records in C. By that I mean to get record 'rec_num' I would do something like this: #define ASSUME_APPROPRIATE_ERROR_CHECKING typedef { int something; char something_else[32]; ... } S_TYPE; S_TYPE s_buf; ... fseek(fp, rec_num * sizeof(S_TYPE), SEEK_SET); fread(s_buf, sizeof(S_TYPE), 1, fp); This worked very well. It was quick and relatively simple to program. As I moved to Unix however I started to move away from this model and started using the flat ASCII line delimited model. The reason for this was data portability. Sed, awk, grep etc. can now work on my files. It is no longer necessary for every program that works on a data file to know the internals of the program that created it. I guess what I am saying is that you may have the cart before the horse here. Unix programmers like the flat ASCII model because the nature of the file system promotes this sort of data sharing. If somehow files could only be read by programs written specifically for them I think you would see much different, and perhaps more efficient, ways of storing data under Unix. >These are only my humble opinions. Me too. -- D'Arcy J.M. Cain (darcy@druid) | D'Arcy Cain Consulting | I support gun control. West Hill, Ontario, Canada | Let's start with the government! + 416 281 6094 |