Input and Output

The C language does not have any I/O capability! You can access files and devices via two groups of functions, these can be split as shown below.

Low Level I/O

Files: Low level functions provide direct access to files and devices. If you only need file read and write you should use the
ANSI functions as your code will remain portable. If you want to access things like, serial ports, virtual memory and tape drives, low level I/O is for you.

Low level functions reference files by a file descriptor, this descriptor is created with the open function and can be referenced by functions like:

mmap - Memory map (Not supported on Linux).
ioctl I/O control.

Three 'file descripters' are opened automatically when your program runs. These are:

	File		Default
	Desc	Name	device
	----    ----	------
	0	stdin	Keyboard
	1	stdout	Screen
	2	stderr	Screen
If you want to use these 'file descriptors', you do not have to issue an 'open'.

Devices: Devices are generally accessed in C by non-standard extensions to the language which define the ports, pins, and onboard hardware control registers of the device being programmed. For example, on a PIC microcontroller, the label TRISA1 can be set or cleared to decide the direction of the first general function IO pin. TRISA1 = 0 would set it as an output pin.


See also:

ANSI standard functions

These functions are defined in the
stdio.h header. The important thing to remember with these functions is the data is presented in a consistant manor across all platforms. A record is considered to be 0 or more characters followed by a newline character. If the actual (physical) record is terminated in some other way, the functions will perform the conversion for you.

Top Master Index C Keywords Functions

Martin Leslie