mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-30 11:54:57 +00:00
49 lines
973 B
Groff
49 lines
973 B
Groff
|
.TH READCONS 3
|
||
|
.SH NAME
|
||
|
readcons \- prompt console for input
|
||
|
.SH SYNOPSIS
|
||
|
.B
|
||
|
#include <u.h>
|
||
|
.PP
|
||
|
.B
|
||
|
#include <libc.h>
|
||
|
.PP
|
||
|
.B
|
||
|
char *readcons(char *prompt, char *def, int secret)
|
||
|
.SH DESCRIPTION
|
||
|
.I 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.
|
||
|
.PP
|
||
|
If the user types an empty string (just a newline) and
|
||
|
.I def
|
||
|
is non-zero, then a copy of
|
||
|
.I def
|
||
|
is returned instead of the empty string.
|
||
|
.PP
|
||
|
If
|
||
|
.I secret
|
||
|
is non-zero, the input is not echoed to the screen.
|
||
|
.SH EXAMPLE
|
||
|
A stripped-down version of
|
||
|
.IR netkey (1):
|
||
|
.IP
|
||
|
.EX
|
||
|
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: %s\n", buf);
|
||
|
}
|
||
|
.EE
|
||
|
.SH SOURCE
|
||
|
.B \*9/src/lib9/readcons.c
|