Browse Prior Art Database

The Raw Stream (The Unformatted-Data Stream)

IP.com Disclosure Number: IPCOM000021567D
Original Publication Date: 2004-Jan-23
Included in the Prior Art Database: 2004-Jan-23
Document File: 5 page(s) / 78K

Publishing Venue

IBM

Abstract

The Raw Stream (The Unformatted-Data Stream) A means for transferring data between command line shell programs.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 28% of the total text.

Page 1 of 5

The Raw Stream (The Unformatted-Data Stream)

Introduction:

All current operating systems' command line processing shells deal with input/output through what are known as standard input/output devices:
* Input Devices: e.g. keyboard, scanners, serial port, parallel port, network connection, represented by certain device-drivers developed to handle such devices. * Output devices: e.g. screen, printer, serial port, parallel port, network connection, represented by certain device-drivers developed to handle such devices.

    Programs running on these command line shells deal with these devices through what are known as input/output channels, where:
* Input Channel (stream) can be mapped to a certain standard input device, so that data input to the program will be read from that device
* Output Channel (stream) can be mapped to a certain standard output device, so that data output from the program will be wrote to that device

    OS command shells supports such mapping through what is known as: * STDOUT : to represent standard output stream, which is usually mapped to the screen by default
* STDIN : to represent standard input stream, which is usually mapped to the keyboard by default

    In addition to these input/output streams, programs can have their input from other programs, this is known as:
Piping: piping the output of one program to the input of another program, and usually this is represented by the pipe symbol ' | ', the following example demonstrates piping:
c:\ help | more
in this example the output of the Help command is piped into the More command which will result in displaying one screen at a time... in more technical words: the More command is reading its input from the output of the Help command.

    Another available facility is the ability to process the output of one program and then using the processed data for other purposes as using the data as parameters used when executing other programs, this facility is supported in several operating systems through some special shell utilities like: * AWK programs for Unix* * CYGWin utilities for Dos / Windows** : which simulates the way Unix Shells work.

    Such utilities enables the user to process the data generated by one program in different ways and this gives huge flexibility to the users of such utilities.

    In general, the piped data (data which is passed from one program to another) is usually formatted by the generating program to be output to the screen, but instead of doing so, the OS passes this data to the other program at the end of the pipe.

The Problem:

    The data which applications output is always represented as a number of text lines, where each line contains one string (a string that is specifically formatted to be displayed on the screen).

    Applications that need to process this data (through piping or other means) usually don't have any idea about the structure of data in each line, this is because every line is represented by one string (already formatted for the screen). For e...