Extension Exercises (The GNU Awk User’s Guide)

From Get docs

17.10 Exercises

  1. Add functions to implement system calls such as chown(), chmod(), and umask() to the file operations extension presented in C Code for chdir() and stat().
  2. Write an input parser that prints a prompt if the input is a from a “terminal” device. You can use the isatty() function to tell if the input file is a terminal. (Hint: this function is usually expensive to call; try to call it just once.) The content of the prompt should come from a variable settable by awk-level code. You can write the prompt to standard error. However, for best results, open a new file descriptor (or file pointer) on /dev/tty and print the prompt there, in case standard error has been redirected. Why is standard error a better choice than standard output for writing the prompt? Which reading mechanism should you replace, the one to get a record, or the one to read raw bytes?
  3. Write a wrapper script that provides an interface similar to ‘sed -i’ for the “inplace” extension presented in Enabling In-Place File Editing.