Exercise 1 - My Cat

  • Use the system call open() to open a file that is specified on the command line. Read the first 10 bytes of the file with the system call read() and then display them on standard output using write(). Use a static buffer.
  • Still using a static buffer, write a program that functions as cat ie, by opening one by one files specified on the command line, reading them and writing them to standard output.

Exercise 2 - My CP

Rewrite a simple program cp (copy a file to another). To create the "target", be sure to use the flags O_CREAT, O_TRUNC, and the third parameter of open() to properly position the rights of the newly created file (look what happens if you do not).

Exercise 3 - Highlander

Write a program that "resists" to signal SIGINT (reminder: this signal is sent when you type Control-C in the terminal). To do so, use system call signal().

Exercise 4 - Highlander II

Rewrite the previous program with the system call sigaction(). To manipulate sigset_t, see the manpage sigsetops (you should at least use sigemptyset()).

Exercise 5 - Speed-O-Meter

Write a speed-o-meter, a program that measures the speed at which one send him data (standard input), in bytes per second.

Exercise 6 - Shaper

Write a shaper, a program that reads from standard input and writes to standard output, but does not write faster than a certain speed specified in bytes per second.