int fork();
int execlp(char *file, char *arg0, ...., char *argn, char * /* NULL */);
int pipe(int filedes[2]);
int wait(int *return_value);
int dup2(int filedes, int diledes2);
int close(int filedes);
Setjmp()/Longjmp()
#include < setjmp.h >
int setjmp(jmp_buf env);
void longjmp(jmp_buf env, int val);
Dllist stuff
#include "jval.h"
typedef struct dllist {
struct dllist *flink;
struct dllist *blink;
Jval val;
} *Dllist;
extern Dllist new_dllist();
extern free_dllist(Dllist);
extern dll_append(Dllist, Jval);
extern dll_prepend(Dllist, Jval);
extern dll_delete_node(Dllist);
extern int dll_empty(Dllist);
#define dll_traverse(ptr, list) \
for (ptr = (list)->flink; ptr != (list); ptr = ptr->flink)
Pthreads
#include < pthreads.h >
typedef pthread_t int;
int pthread_create(pthread_t *new_thread_ID,
pthread_attr_t *attr,
void * (*start_func)(void *),
void *arg);
int pthread_mutex_init(pthread_mutex_t *mp, pthread_mutexattr_t *attr);
int pthread_mutex_lock(pthread_mutex_t *mp);
int pthread_mutex_unlock(pthread_mutex_t *mp);