MiniC

Deadline: September 5th, 2014

1   Instructions

  1. Read and study the C coding standard that accompanies the course.
  2. Teach yourself the basics of the Unix environment, if necessary using the tutorial linked in References below.
  3. Do the programming assignment described below.

2   Programming assignment

The teaching goal of this assignment is to get used to the C programming environment and learn the basic of how libraries work. What you must do, in a nutshell:

2.1   The two functions

You must implement the following two functions:

unsigned long my_strlen(const char *s);
int my_strcmp(const char *s1, const char *s2);
  • my_strlen must behave like the function strlen from the standard C library. See strlen(3) for details.
  • my_strcmp must behave like the function strcmp from the standard C library. See strcmp(3) for details.
  • my_strlen must be implemented in a file named my_strlen.c.
  • my_strcmp must be implemented in a file named my_strcmp.c.
  • the two function prototypes must be declared in a .h file, in accordance with the C coding standard.
  • you must not include any system header in your code.
  • you must not use any function from the C standard library in your code.

2.2   The test program

You must implement a program which takes either one or two arguments on the command line:

  • if one argument is provided, it must return its length as exit code.
  • if two arguments are provided, it must return the result of their comparison as exit code.

The program must be implemented in a file named test.c. Again, you must not include any standard/system header nor use any function from the standard C library.

2.3   The Makefile

Your Makefile must contain rules to build:

  • libminic.a, a static library containing the two functions;
  • test, the test program, linking with -lminic.

Ensure that your Makefile also follows the section “Build rules” in the C coding standard.

3   Grading

4   References