mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-07-03 02:04:22 +08:00
38 lines
628 B
Go
38 lines
628 B
Go
// +build dragonfly openbsd
|
|
|
|
package termios
|
|
|
|
// #include<stdlib.h>
|
|
import "C"
|
|
|
|
import "syscall"
|
|
|
|
func open_pty_master() (uintptr, error) {
|
|
rc := C.posix_openpt(syscall.O_NOCTTY | syscall.O_RDWR)
|
|
if rc < 0 {
|
|
return 0, syscall.Errno(rc)
|
|
}
|
|
return uintptr(rc), nil
|
|
}
|
|
|
|
func Ptsname(fd uintptr) (string, error) {
|
|
slavename := C.GoString(C.ptsname(C.int(fd)))
|
|
return slavename, nil
|
|
}
|
|
|
|
func grantpt(fd uintptr) error {
|
|
rc := C.grantpt(C.int(fd))
|
|
if rc == 0 {
|
|
return nil
|
|
}
|
|
return syscall.Errno(rc)
|
|
}
|
|
|
|
func unlockpt(fd uintptr) error {
|
|
rc := C.unlockpt(C.int(fd))
|
|
if rc == 0 {
|
|
return nil
|
|
}
|
|
return syscall.Errno(rc)
|
|
}
|