manpagez: man pages & more
info gawk
Home | html | info | man

File: gawk.info,  Node: Extension Exercises,  Prev: Extension summary,  Up: Dynamic Extensions

17.10 Exercises
===============

  1. Add functions to implement system calls such as 'chown()',
     'chmod()', and 'umask()' to the file operations extension presented
     in *note Internal File Ops::.

  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 *note Extension Sample
     Inplace::.

© manpagez.com 2000-2025
Individual documents may contain additional copyright information.