AUP Examples

This directory contains some examples in ATS that are largely translated from the book Advanced Unix Programming (2nd edition) by Marc Rochind.


  • AUP_2_4_3: Using a file as a lock
  • AUP_2_13: lseek System Calls
  • AUP_2_14: pread and pwrite System Calls

  • AUP_3_4: Pathnames
  • AUP_3_5: Accessing and Displaying File Metadata
  • AUP_3_6_4: Implementing getcwd (walking up the tree)

  • AUP_4_2_1: Reading from a Terminal
  • AUP_4_2_2_1: Nonblocking Input
  • AUP_4_2_2_2: Nonblocking Input
  • AUP_4_2_3: select System Call
  • AUP_4_3_5: Session-related System Calls
  • AUP_4_7: Terminal-Identification System Calls
  • AUP_4_8: Full-Screen Applications

  • AUP_5_2: Environment (getenv, putenv, setenv, unsetenv)
  • AUP_5_4: Implementing a Shell (Version 1)
  • AUP_5_6: Implementing a Shell (Version 2)
  • AUP_5_10: Implementing a Shell (Version 3)
  • AUP_5_11: Getting User and Group IDs
  • AUP_5_15: Getting and Setting the Priority
  • AUP_5_17_3: Thread Synchronization (Mutexes)

  • AUP_6_3_1: dup and dup2 System Calls
  • AUP_6_5: Two-Way Communication with Unidirectional Pipes

  • AUP_8_1_1: How Sockets Work
  • AUP_8_1_3: Handling Multiple Clients
  • AUP_8_1_4: Byte Order
  • AUP_8_2_3: AF_INET Socket Addresses
  • AUP_8_2_6: getaddrinfo
  • AUP_8_3: Socket Options
  • AUP_8_8_1_1: Host Functions

  • AUP_9_1_1: Introduction to Signals
  • AUP_9_1_7: Signal Handlers
  • AUP_9_2_3: sigsuspend System Call
  • AUP_9_7_1: alarm System Call
  • AUP_9_7_2: sleep System Call
  • AUP_9_7_4: Basic Interval-Timer System Calls
  • AUP_9_7_5: Realtime Clocks

  • Last modified: Tue Oct 26 16:25:49 EDT 2010