Extension Exercises (The GNU Awk User’s Guide)
From Get docs
Gawk/docs/latest/Extension-Exercises
Previous: Extension summary, Up: Dynamic Extensions [Contents][Index]
17.10 Exercises
- Add functions to implement system calls such as
chown()
,chmod()
, andumask()
to the file operations extension presented in C Code for chdir() and stat(). - 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 byawk
-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? - Write a wrapper script that provides an interface similar to ‘
sed -i
’ for the “inplace” extension presented in Enabling In-Place File Editing.