mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 20:17:44 +00:00
LibC: Add posix_openpt(), grantpt() and unlockpt()
This makes getting a pseudoterminal pair a little bit more portable. Note that grantpt() and unlockpt() are currently no-ops, since we've already granted the pseudoterminal slave to the calling user. We also accept O_CLOEXEC to posix_openpt(), unlike some systems. :^)
This commit is contained in:
parent
6d1740e4be
commit
f2a087126c
5 changed files with 58 additions and 6 deletions
|
@ -52,9 +52,17 @@ void TerminalWrapper::run_command(const String& command)
|
|||
return;
|
||||
}
|
||||
|
||||
int ptm_fd = open("/dev/ptmx", O_RDWR | O_CLOEXEC);
|
||||
int ptm_fd = posix_openpt(O_RDWR | O_CLOEXEC);
|
||||
if (ptm_fd < 0) {
|
||||
perror("open(ptmx)");
|
||||
perror("posix_openpt");
|
||||
ASSERT_NOT_REACHED();
|
||||
}
|
||||
if (grantpt(ptm_fd) < 0) {
|
||||
perror("grantpt");
|
||||
ASSERT_NOT_REACHED();
|
||||
}
|
||||
if (unlockpt(ptm_fd) < 0) {
|
||||
perror("unlockpt");
|
||||
ASSERT_NOT_REACHED();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue