显示ppp2.7.4源码中使用的tcgetattr函数源码文件位置和源码
时间: 2023-12-14 10:36:52 浏览: 75
vue-2.7.4.zip
在 ppp2.7.4 源码中,tcgetattr 函数的实现位于文件 `pppd/tty.c` 中。
以下是 `tty.c` 文件中的 `tcgetattr` 函数的源码:
```c
/********************************************************************
*
* Function: tcgetattr
*
* Description: Get the current terminal attributes.
*
********************************************************************/
int
tcgetattr(fd, tios)
int fd;
struct termios *tios;
{
#ifdef HAVE_TERMIOS_H
return tcgetattr(fd, tios);
#else
struct sgttyb buf;
if (ioctl(fd, TIOCGETP, &buf) < 0)
return (-1);
tios->c_ispeed = tios->c_ospeed = buf.sg_ospeed;
tios->c_cflag = (buf.sg_flags & ~ECHO) | CLOCAL | CREAD;
tios->c_cc[VEOF] = CEOF;
tios->c_cc[VEOL] = CEOL;
return (0);
#endif
}
```
注意,如果系统支持 `termios.h` 头文件,`tcgetattr` 函数将会调用系统提供的 `tcgetattr` 函数。否则,它将使用 `ioctl` 函数和 `TIOCGETP` 命令来获取终端属性,并将结果复制到 `termios` 结构中。
阅读全文