----- Original Message -----
 From: "Marshall Fisher" <fishermh@yahoo.com>
 To: <c-prog@yahoogroups.com>
 Sent: Monday, April 26, 2004 3:23 AM
 Subject: [c-prog] Input from other than file or keyboard

>
> Hello all,
>
> I'm new to C and learning as I go.  What statements in C are available to
> enable input from other than keyboard or file?
>
> Thanks,
> Marshall
>

    You want to ask "What functions ... ?", and not "What statements ... ?"
Section 3.1, Statements and Blocks, of K&R says:

            "An expression such as x = 0 or i++ or printf(...) becomes a
        statement when it is followed by a semicolon, as in

            x = 0;
            i++;
            printf(...);

        In C, the semicolon is a statement terminator, rather ..."

    As for you question, the Standard does not mention which devices should
be supported and not.  In fact, C uses a concept knowns as "Streams", borrowed
from UNIX.  Input or output from/to any *kind* of device is mapped into logical
data streams.  Streams have well defined and uniform properties, whereas devices
may not have uniformity.  There are two forms of streams defined by the
Standard: text and binary streams.

    Following points can be noted:

    *   A stream is connected to a file or device by opening it; the connection
            is broken by closing the stream.

    *   The library supports text and binary streams.

    For example, UNIX and UNIX-flavoured OSes treat every device as a file;
sockets, devices and disk files can be opened, closed, etc., by <stdio.h>
functions.  This is possible because the library maps the I/O from/to source or
destination to streams understood by C.  Portability, you know, after all!