12-17-2010
Quote:
No. By block mysteriously, I mean, block on more than one character even when vmin=1. I wasn't able to get "proper" behavior as you describe it, and don't want to give someone "compliant" yet broken code.
The proper behavior is to wait for one character. I have used this construct (~ICANON|ECHO, VMIN=1, VTIME=0) on tons of systems (Linux, *BSD, OSX, AIX, Tru64 and Digital UNIX, IRIX, HP-UX, UnixWare) as well as Cygwin and it always worked as expected. It is standard, documented and it works.
Did you try the exact code Jim posted with the only change being VMIN=1?
Blocking "mysteriously" in noncanonical mode after tcsetattr() usually happens if you DON'T set VMIN, in which case some systems such as IRIX and (I think) Solaris default to VMIN=4, whereas Linux and BSD default to 1. But then they only block until you entered 4 chars.
I labeled the select() solution a kludge because it seemed an unnecessarily contrived solution if you're setting VMIN to 1, since the read operation will block until 1 char has been read and no timeout was indended.
10 More Discussions You Might Find Interesting
1. IP Networking
Is it possible for a internal LAN to mask a IP e.g. i have a server ip running the intranet ip being 192.168.0.8 and i want to make that like www.intranet.com is this possible on a internal network ? (1 Reply)
Discussion started by: perleo
1 Replies
2. Shell Programming and Scripting
Hello,
I need to know that whether a content of a string can be hidden or masked inside a shell script.
My Sample Code is given below
<Code>
#!/usr/bin/ksh
Userid=test
DB=temp
Passwd=`java Decryption test`
# The Above command will get the encryped password for "test" user id and store... (2 Replies)
Discussion started by: maxmave
2 Replies
3. Shell Programming and Scripting
I have a pipe delimited file that I need to 'mask' to before loading to keep some data confidential. I need to maintain the first 4 bytes of certain columns and replace the remaining bytes with an 'x'. I would like to maintain spaces but it's not a requirement.
Example, need to mask columns 2... (2 Replies)
Discussion started by: 1superdork
2 Replies
4. Emergency UNIX and Linux Support
BAT:0310:2009-08-0:Y4 :H:D:00003721:03103721.IFH:00138770:05767:00000000001279'
EXR:CLP:912.570000'
STA:A:9071559:2009-08-10::Wer::Mrs'
DEF::531.97:531.97:310221661617::+ABC:BAL:1:N::::5:40.00:0.00:2009-08-10:CN:1111111111109962::3:N:missc :N:PH:00010833:... (5 Replies)
Discussion started by: mad_man12
5 Replies
5. Shell Programming and Scripting
Hi,
I currently have a UNIX script with a function that uses a username and password to connect to the database, retrieve some information and then exit.
At the moment, am getting the username and password from a hidden plain text file and permission set to -r--------, i.e. read only to who... (1 Reply)
Discussion started by: newbie_01
1 Replies
6. Shell Programming and Scripting
Hi I am facing an issue with the below script which has the below line
each field being separated with a tab.
I need to mask the 8 and 7th field based on following conditions
1. 8th field is 16 in length and is numerics
i will mask the middle 6 digits except the first 6 and last 4.
input... (2 Replies)
Discussion started by: mad_man12
2 Replies
7. Shell Programming and Scripting
Is there a way to mask the password inside of a script to minimize the impact of a comprimised server? So
ssh -o "PasswordAuthentication no" -o "HostbasedAuthentication yes" -l testuser 192.168.3.1 "mysqldump --opt --all-databases -u root -pPassword| gzip" > $backup_dir/mysqldump.gz
a... (2 Replies)
Discussion started by: metallica1973
2 Replies
8. Shell Programming and Scripting
I have a requirement of masking few specific fields in the UNIX file. The details are as following-
File is fixed length file with each record of 250 charater length.
2 fields needs to be masked – the positions are 21:30 and 110:120
The character by character making needs to be done which... (5 Replies)
Discussion started by: n78298
5 Replies
9. UNIX for Dummies Questions & Answers
How Can I mask one particular columns using some unix command? (4 Replies)
Discussion started by: dsa
4 Replies
10. Shell Programming and Scripting
My file "test.dat" data as below
Requirement is to mask(replace) all english characters with "X" EXCEPT first 7 characters of every line.
my command
awk '{gsub("]","X")}1' test.dat
looks not working properly, Appreciate any suggestion... (6 Replies)
Discussion started by: JSKOBS
6 Replies
LEARN ABOUT CENTOS
cfsetspeed
TERMIOS(3) Linux Programmer's Manual TERMIOS(3)
NAME
termios, tcgetattr, tcsetattr, tcsendbreak, tcdrain, tcflush, tcflow, cfmakeraw, cfgetospeed, cfgetispeed, cfsetispeed, cfsetospeed, cfset-
speed - get and set terminal attributes, line control, get and set baud rate
SYNOPSIS
#include <termios.h>
#include <unistd.h>
int tcgetattr(int fd, struct termios *termios_p);
int tcsetattr(int fd, int optional_actions,
const struct termios *termios_p);
int tcsendbreak(int fd, int duration);
int tcdrain(int fd);
int tcflush(int fd, int queue_selector);
int tcflow(int fd, int action);
void cfmakeraw(struct termios *termios_p);
speed_t cfgetispeed(const struct termios *termios_p);
speed_t cfgetospeed(const struct termios *termios_p);
int cfsetispeed(struct termios *termios_p, speed_t speed);
int cfsetospeed(struct termios *termios_p, speed_t speed);
int cfsetspeed(struct termios *termios_p, speed_t speed);
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
cfsetspeed(), cfmakeraw(): _BSD_SOURCE
DESCRIPTION
The termios functions describe a general terminal interface that is provided to control asynchronous communications ports.
The termios structure
Many of the functions described here have a termios_p argument that is a pointer to a termios structure. This structure contains at least
the following members:
tcflag_t c_iflag; /* input modes */
tcflag_t c_oflag; /* output modes */
tcflag_t c_cflag; /* control modes */
tcflag_t c_lflag; /* local modes */
cc_t c_cc[NCCS]; /* special characters */
The values that may be assigned to these fields are described below. In the case of the first four bit-mask fields, the definitions of
some of the associated flags that may be set are exposed only if a specific feature test macro (see feature_test_macros(7)) is defined, as
noted in brackets ("[]").
In the descriptions below, "not in POSIX" means that the value is not specified in POSIX.1-2001, and "XSI" means that the value is speci-
fied in POSIX.1-2001 as part of the XSI extension.
c_iflag flag constants:
IGNBRK Ignore BREAK condition on input.
BRKINT If IGNBRK is set, a BREAK is ignored. If it is not set but BRKINT is set, then a BREAK causes the input and output queues to be
flushed, and if the terminal is the controlling terminal of a foreground process group, it will cause a SIGINT to be sent to this
foreground process group. When neither IGNBRK nor BRKINT are set, a BREAK reads as a null byte ('