READCONS(3)                                           READCONS(3)

     NAME
          readcons - prompt console for input

     SYNOPSIS
          #include <u.h>

          #include <libc.h>

          char *readcons(char *prompt, char *def, int secret)

     DESCRIPTION
          Readcons prompts at the console for input.  It returns a
          NUL-terminated buffer containing the input without a final
          newline.  The buffer should be freed (and perhaps cleared
          first) when no longer needed.

          If the user types an empty string (just a newline) and def
          is non-zero, then a copy of def is returned instead of the
          empty string.

          If secret is non-zero, the input is not echoed to the
          screen.

     EXAMPLE
          A stripped-down version of netkey (see passwd(1)):

               pass = readcons("password", nil, 1);
               passtokey(key, pass);
               memset(pass, 0, strlen(pass));
               free(pass);
               for(;;){
                    chal = readcons("challenge", nil, 0);
                    sprint(buf, "%d", strtol(chal, 0, 10));
                    free(chal);
                    netcrypt(key, buf);
                    print("response: %s0, buf);
               }

     SOURCE
          /src/lib9/readcons.c