Error Reporting:: Stdin, Stdout, Stderr
Error Reporting:: Stdin, Stdout, Stderr
Error Reporting:: Stdin, Stdout, Stderr
Many times it is useful to report errors in a C program. The standard library perror() is an easy to
use and convenient function. It is used in conjunction with errno and frequently on encountering an
error you may wish to terminate your program early. We will meet these concepts in other parts of
the function reference chapter also.
errno: - is a special system variable that is set if a system call cannot perform its set task. It is
defined in #include <errno.h>.
Predefined Streams:
UNIX defines 3 predefined streams ie. virtual files
They all use text a the method of I/O. stdin and stdout can be used with files, programs, I/O
devices such as keyboard, console, etc.. stderr always goes to the console or screen.
The console is the default for stdout and stderr. The keyboard is the default for stdin.
• void *calloc(size_t num elems, size_t elem_size) - Allocate an array and initialise all
elements to zero .
• void free(void *mem address) - Free a block of memory.
• void *malloc(size_t num bytes) - Allocate a block of memory.
• void *realloc(void *mem address, size_t newsize) - Reallocate (adjust size) a block of
memory.
#include <stdio.>h
main( int argc, char *argv[] )
{
if( argc == 2 )
printf("The argument supplied is %s\n", argv[1]);
else if( argc > 2 )
printf("Too many arguments supplied.\n");
else
printf("One argument expected.\n");
}
Note that *argv[0] is the name of the program invoked, which means that *argv[1] is a pointer to
the first argument supplied, and *argv[n] is the last argument. If no arguments are supplied, argc
will be one. Thus for n arguments, argc will be equal to n + 1. The program is called by the
command line:
$myprog argument1
More clearly, Suppose a program is compiled to an executable program myecho and that the
program is executed with the following command.
When this command is executed, the command interpreter calls the main() function of the myprog
program with 4 passed as the argc argument and an array of 4 strings as the argv argument.
argv[0] - "myprog"
argv[1] - "aaa"
argv[2] - "bbb"
argv[3] - "ccc"
Multidimensional Arrays:
The array we used in the last example was a one dimensional array. Arrays can have more than one
dimension, these arrays-of-arrays are called multidimensional arrays. They are very similar to
standard arrays with the exception that they have multiple sets of square brackets after the array
identifier. A two dimensional array can be though of as a grid of rows and columns.
#include <stdio.h>
int
main()
{
int box[num_rows][num_columns];
int row, column;
0 1 2 3 4
5 6 7 8 9
10 11 12 13 14
15 16 17 18 19
20 21 22 23 24
25 26 27 28 29
30 31 32 33 34
The above array has two dimensions and can be called a doubly subscripted array. GCC allows
arrays of up to 29 dimensions although actually using an array of more than three dimensions is
very rare.
C is a general-purpose high level language that was originally developed by Dennis Ritchie for the
Unix operating system. It was first implemented on the Digital Eqquipment Corporation PDP-11
computer in 1972.
The Unix operating system and virtually all Unix applications are written in the C language. C has
now become a widely used professional language for various reasons.
• Easy to learn
• Structured language
• It produces efficient programs.
• It can handle low-level activities.
• It can be compiled on a variety of computers.
Facts about C
Why to use C ?
C was initially used for system development work, in particular the programs that make-up the
operating system. C was adoped as a system development language because it produces code that
runs nearly as fast as code written in assembly language. Some examples of the use of C might be:
• Operating Systems
• Language Compilers
• Assemblers
• Text Editors
• Print Spoolers
• Network Drivers
• Modern Programs
• Data Bases
• Language Interpreters
• Utilities
C Program File
All the C programs are writen into text files with extension ".c" for example hello.c. You can use
"vi" editor to write your C program into a file.
This tutorial assumes that you know how to edit a text file and how to write programming
insturctions inside a program file.
C Compilers
When you write any program in C language then to run that program you need to compile that
program using a C Compiler which converts your program into a language understandable by a
computer. This is called machine language (ie. binary format). So before proceeding, make sure you
have C Compiler available at your computer. It comes alongwith all flavors of Unix and Linux.
If you are working over Unix or Linux then you can type gcc -v or cc -v and check the result. You
can ask your system administrator or you can take help from anyone to identify an available C
Compiler at your computer.
If you don't have C compiler installed at your computer then you can use below given link to
download a GNU C Compiler and use it.
To know more about compilation you can go through this small tutorial Learn Makefile.