trying to understand rationale of unix stream i/o concept

UNIX for Dummies Questions & Answers

Kindly Note - This is a Single User Post by Forum Member Perderabo Regarding:
trying to understand rationale of unix stream i/o concept.
Please Follow The Primary Link Above to View the Full Discussion.

Old 07-16-2009
Perderabo's Unix or Linux Image
Perderabo Perderabo is offline Forum Advisor  
Unix Daemon (Administrator Emeritus)
Join Date: Aug 2001
Last Activity: 26 February 2016, 12:31 PM EST
Location: Ashburn, Virginia
Posts: 9,930
Thanks: 63
Thanked 474 Times in 272 Posts
A method is like a subroutine. An example might be a file of dictionary words. Instead of writing. you "insert" the word. Somehow the system keeps the words in alphabetical order. You can retrieve a list of all word in alphabetical order or you can search for a word. But the data file itself is a black box and you can't access it. If you put 1,234 bytes worth of words into the data file it will be bigger than 1,234 bytes. The system needs some extra stuff to find it's way around the file. This extra stuff is the control blocks.

And believe it or not, there used to be a sequential file which behaved like a really stupid tape drive. You could read it. You could even read it byte-by-byte. But after you read, say, byte number 123, you had two choices: read byte 124 or close the file. However, the OS could predict a program's behavior rather easily and this was fast (for it's day).

There might be a "random" file where you could seek and then read, but it was slow. After seeking to byte 123 and reading one byte, you could next seek to byte 124 and read that. But if you wanted a sequential file, you were supposed use a sequential file, not a random file.

Mind you, a single data file might be opened as "sequential" by one program and "random" by another. But then each program had a different interface (or subroutine or method) to read the file. However there was no way to execute a data file or to read a program file.

There were many file types and OS's competed by offering more file types. The Unix model of just one file type displaced all of this.