linux<;termios.h>;echo和it';s的意思是
文件描述符0的驱动程序中回显位的状态。使用重定向操作符<将标准输入附加到设备的其他文件。尝试以下实验:linux<;termios.h>;echo和it';s的意思是,c,linux,ubuntu,C,Linux,Ubuntu,文件描述符0的驱动程序中回显位的状态。使用重定向操作符
$ ./echostate < /dev/pts/0
$ ./echostate < /etc/passwd
$。/echostate
输出
请向我解释每个命令产生的输出。
我不知道这些输出的差异
echostate.c
#包括
#包括
#包括
main()
{
结构术语信息;
int-rv;
rv=tcgetattr(0,&info);
如果(rv==-1){
perror(“tcgetattr”);
出口(1);
}
如果(信息链接和回音)
printf(“echo打开,因为它的位是1\n”);
其他的
printf(“如果关闭则回显,因为其位为0\n”);
}
tcgetattr
在文件(/etc/passed
)上没有意义,但仅在某些类型的设备上
这就是错误消息告诉您的。请不要将文本输出添加为屏幕截图。只需复制粘贴文本并将其添加到问题中即可。毕竟它是文本,没有艺术品。
#include <stdio.h>
#include <termios.h>
#include <stdlib.h>
main()
{
struct termios info;
int rv;
rv = tcgetattr(0, &info);
if (rv == -1) {
perror("tcgetattr");
exit(1);
}
if (info.c_lflag & ECHO)
printf("echo is on, since its bit is 1\n");
else
printf("echo if OFF, since its bit is 0\n");
}