当前位置: 技术问答>linux和unix
关于伪终端的问题!
来源: 互联网 发布时间:2015-08-08
本文导语: 我在使用Linux的伪终端时发现:master端发往slave的数据大于63个字节时,slave端才会立即收到。 否则要过时间slave端才会收到。我想要slave端立即收到,如何解决呢? 附源代码如下: /************pty_master************************/...
我在使用Linux的伪终端时发现:master端发往slave的数据大于63个字节时,slave端才会立即收到。
否则要过时间slave端才会收到。我想要slave端立即收到,如何解决呢?
附源代码如下:
/************pty_master************************/
#include
#include /* for atol() */
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int loop_on = 1;
char master_dev[] = "/dev/ptyb0";
int master_fd;
int slave_fd;
int main_loop()
{
int max_fd;
fd_set readfds;
struct timeval tv;
int rv;
char buf[200];
int n;
max_fd = master_fd;
while(loop_on)
{
// rv = write(master_fd, "i am mastern", sizeof("i am mastern"));
rv = write(master_fd,"0123456rn",4);
printf("send rv = %dn", rv);
#if 1
FD_ZERO(&readfds);
FD_SET(master_fd,&readfds);
tv.tv_sec = 0;
tv.tv_usec = 500000;
rv = select(max_fd + 1, &readfds, NULL, NULL, &tv);
if (rv
否则要过时间slave端才会收到。我想要slave端立即收到,如何解决呢?
附源代码如下:
/************pty_master************************/
#include
#include /* for atol() */
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int loop_on = 1;
char master_dev[] = "/dev/ptyb0";
int master_fd;
int slave_fd;
int main_loop()
{
int max_fd;
fd_set readfds;
struct timeval tv;
int rv;
char buf[200];
int n;
max_fd = master_fd;
while(loop_on)
{
// rv = write(master_fd, "i am mastern", sizeof("i am mastern"));
rv = write(master_fd,"0123456rn",4);
printf("send rv = %dn", rv);
#if 1
FD_ZERO(&readfds);
FD_SET(master_fd,&readfds);
tv.tv_sec = 0;
tv.tv_usec = 500000;
rv = select(max_fd + 1, &readfds, NULL, NULL, &tv);
if (rv