- 论坛徽章:
- 0
|
本帖最后由 amazingjxq 于 2010-05-08 10:07 编辑
建立了一个伪终端,子进程用来exec pppd, pppd的stdin stdout 都设为slave。父进程从master 读取pppd发送的数据。
pppd启动之后首先会发送ConfReq,正确的数据应该是这个样子的:
ff 03 c0 21 01 01
但是从master那边读出来的却是这个样子:
7e ff 7d 23 c0 21 7d 21 7d 21
下面的是设置master属性的代码,就是apue里面的raw模式。
- tcgetattr(fdm, &term);
- old = term;
- term.c_lflag &= ~(ECHO | ICANON | IEXTEN | ISIG);
- term.c_iflag &= ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON);
- term.c_cflag &= ~(CSIZE | PARENB);
- term.c_cflag |= CS8;
- term.c_oflag &= ~(OPOST);
- term.c_cc[VMIN] = 1;
- term.c_cc[VTIME] = 0;
- tcsetattr(fdm, TCSANOW, &term);
复制代码 也曾试过把oflag 和 iflag都设为0, 不过还是一样。
到底是错在了什么地方呢?
顺便问一句,怎么把master的属性改之后,slave的属性也改掉了? |
|