Lines Matching refs:pty
6 use nix::pty::openpty;
24 let pty = openpty(None, None).expect("openpty failed");
25 termios::tcgetattr(pty.slave).unwrap();
26 close(pty.master).expect("closing the master failed");
27 close(pty.slave).expect("closing the slave failed");
52 // Open one pty to get attributes for the second one
54 let pty = openpty(None, None).expect("openpty failed");
55 assert!(pty.master > 0);
56 assert!(pty.slave > 0);
57 let termios = tcgetattr(pty.slave).expect("tcgetattr failed");
58 close(pty.master).unwrap();
59 close(pty.slave).unwrap();
74 // Open a pty
75 let pty = openpty(None, &termios).unwrap();
76 assert!(pty.master > 0);
77 assert!(pty.slave > 0);
81 write_all(pty.master, string.as_bytes());
85 crate::read_exact(pty.slave, &mut buf);
87 close(pty.master).unwrap();
88 close(pty.slave).unwrap();
98 // Open one pty to get attributes for the second one
100 let pty = openpty(None, None).unwrap();
101 assert!(pty.master > 0);
102 assert!(pty.slave > 0);
103 let termios = tcgetattr(pty.slave).unwrap();
104 close(pty.master).unwrap();
105 close(pty.slave).unwrap();
115 // Open a new pty with our modified termios settings
116 let pty = openpty(None, &termios).unwrap();
117 assert!(pty.master > 0);
118 assert!(pty.slave > 0);
121 let flags = fcntl::fcntl(pty.master, fcntl::F_GETFL).unwrap();
124 fcntl::fcntl(pty.master, fcntl::F_SETFL(new_flags)).unwrap();
128 write_all(pty.master, string.as_bytes());
132 let read = read(pty.master, &mut buf).unwrap_err();
133 close(pty.master).unwrap();
134 close(pty.slave).unwrap();