From: utzoo!decvax!cca!sdyer@Bbn-Unix@sri-unix Newsgroups: net.unix-wizards Title: Re: Information on Unix/Vax peculiarities Article-I.D.: sri-unix.4840 Posted: Wed Dec 15 03:35:51 1982 Received: Sat Dec 18 22:36:51 1982 From: Steve Dyer Date: 9 Dec 1982 16:59:52 EST (Thursday) V5 and early V6 (pre-Phototypesetter distribution) C compilers had no concept of a 'long' integer. Rather, most programs used a set of library routines, and passed int[2] objects to them. The kernel was full of these, particularly in the manipulation of variables representing UNIX time. The unusual calling sequence for time(), i.e. long tvec; reflects the V6 int tvec[2]; time(&tvec); construct time(tvec); which was kept for compatibility with earlier C programs. In V7, they also redeclared it as returning a 'long' quantity, so that new programs could use the more natural convention. In the same sense, one could say that the calling sequence for the newer V7 call, ftime(struct timeb *), reflects the very late addition of structures as legal return values to the C language. That is, they had the option of declaring ftime() to return a timeb structure, but they didn't (probably for backward compatibility.) /Steve Dyer