treadcons.3 - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       treadcons.3 (990B)
       ---
            1 .TH READCONS 3
            2 .SH NAME
            3 readcons \- prompt console for input
            4 .SH SYNOPSIS
            5 .B
            6 #include <u.h>
            7 .PP
            8 .B
            9 #include <libc.h>
           10 .PP
           11 .B
           12 char *readcons(char *prompt, char *def, int secret)
           13 .SH DESCRIPTION
           14 .I Readcons
           15 prompts at the console for input.
           16 It returns a NUL-terminated buffer containing the input
           17 without a final newline.
           18 The buffer should be freed (and perhaps cleared first) 
           19 when no longer needed.
           20 .PP
           21 If the user types an empty string (just a newline) and
           22 .I def
           23 is non-zero, then a copy of 
           24 .I def
           25 is returned instead of the empty string.
           26 .PP
           27 If
           28 .I secret
           29 is non-zero, the input is not echoed to the screen.
           30 .SH EXAMPLE
           31 A stripped-down version of
           32 .I netkey
           33 (see
           34 .MR passwd (1) ):
           35 .IP
           36 .EX
           37 pass = readcons("password", nil, 1);
           38 passtokey(key, pass);
           39 memset(pass, 0, strlen(pass));
           40 free(pass);
           41 for(;;){
           42         chal = readcons("challenge", nil, 0);
           43         sprint(buf, "%d", strtol(chal, 0, 10));
           44         free(chal);
           45         netcrypt(key, buf);
           46         print("response: %s\n", buf);
           47 }
           48 .EE
           49 .SH SOURCE
           50 .B \*9/src/lib9/readcons.c