One of the most basic needs when working in the embedded control industry is to comunicate with target processors. After migrating to Linux from MS-DOS, we searched in vain for a simple, light-weight terminal emulator program. Such a program is necessary to talk to target processors through the RS-232 ports commonly available in PC hosts. We developed xt to satisfy this need; it was initially derived from miniterm.c written by Sven Goldt. Features xt -- A Simple Terminal Emulator | Real-Time Systems Inc.
list module This module provides functions for manipulating and iterating over lists of homogeneous data (or heterogeneous data if it's polymorphic). Lists may own their items. Lists created with a non-null destroy function use that function to destroy an item when it is removed from the list and to destroy each item when the list itself is destroyed. Be careful not to insert items owned by one list into a list that doesn't own its own items unless you know that the source list (and all of the shared items) will outlive the destination list.
POSIX semaphores Now it is time to take a look at some code that does something a little unexpected. The program threadadd.c creates two new threads, both of which increment a global variable called count exactly NITER, with NITER = 1,000,000. But the program produces unexpected results. Exercise 1.
The Valgrind tool suite provides a number of debugging and profiling tools that help you make your programs faster and more correct. The most popular of these tools is called Memcheck. It can detect many memory-related errors that are common in C and C++ programs and that can lead to crashes and unpredictable behaviour. Valgrind