posix_openpt.2 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. .\" Copyright (c) 2008 Ed Schouten <ed@FreeBSD.org>
  2. .\" All rights reserved.
  3. .\"
  4. .\" Portions of this software were developed under sponsorship from Snow
  5. .\" B.V., the Netherlands.
  6. .\"
  7. .\" Redistribution and use in source and binary forms, with or without
  8. .\" modification, are permitted provided that the following conditions
  9. .\" are met:
  10. .\" 1. Redistributions of source code must retain the above copyright
  11. .\" notice, this list of conditions and the following disclaimer.
  12. .\" 2. Redistributions in binary form must reproduce the above copyright
  13. .\" notice, this list of conditions and the following disclaimer in the
  14. .\" documentation and/or other materials provided with the distribution.
  15. .\"
  16. .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  17. .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  18. .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  19. .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
  20. .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  21. .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  22. .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  23. .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  24. .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  25. .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  26. .\" SUCH DAMAGE.
  27. .\"
  28. .\" Portions of this text are reprinted and reproduced in electronic form
  29. .\" from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology --
  30. .\" Portable Operating System Interface (POSIX), The Open Group Base
  31. .\" Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of
  32. .\" Electrical and Electronics Engineers, Inc and The Open Group. In the
  33. .\" event of any discrepancy between this version and the original IEEE and
  34. .\" The Open Group Standard, the original IEEE and The Open Group Standard is
  35. .\" the referee document. The original Standard can be obtained online at
  36. .\" http://www.opengroup.org/unix/online.html.
  37. .\"
  38. .Dd September 21, 2016
  39. .Dt POSIX_OPENPT 2
  40. .Os
  41. .Sh NAME
  42. .Nm posix_openpt
  43. .Nd "open a pseudo-terminal device"
  44. .Sh LIBRARY
  45. .Lb libc
  46. .Sh SYNOPSIS
  47. .In fcntl.h
  48. .In stdlib.h
  49. .Ft int
  50. .Fn posix_openpt "int oflag"
  51. .Sh DESCRIPTION
  52. The
  53. .Fn posix_openpt
  54. function allocates a new pseudo-terminal and establishes a connection
  55. with its master device.
  56. A slave device shall be created in
  57. .Pa /dev/pts .
  58. After the pseudo-terminal has been allocated, the slave device should
  59. have the proper permissions before it can be used (see
  60. .Xr grantpt 3 ) .
  61. The name of the slave device can be determined by calling
  62. .Xr ptsname 3 .
  63. .Pp
  64. The file status flags and file access modes of the open file description
  65. shall be set according to the value of
  66. .Fa oflag .
  67. Values for
  68. .Fa oflag
  69. are constructed by a bitwise-inclusive OR of flags from the following
  70. list, defined in
  71. .In fcntl.h :
  72. .Bl -tag -width ".Dv O_CLOEXEC"
  73. .It Dv O_RDWR
  74. Open for reading and writing.
  75. .It Dv O_NOCTTY
  76. If set
  77. .Fn posix_openpt
  78. shall not cause the terminal device to become the controlling terminal
  79. for the process.
  80. .It Dv O_CLOEXEC
  81. Set the close-on-exec flag for the new file descriptor.
  82. .El
  83. .Pp
  84. The
  85. .Fn posix_openpt
  86. function shall fail when
  87. .Fa oflag
  88. contains other values.
  89. .Sh RETURN VALUES
  90. Upon successful completion, the
  91. .Fn posix_openpt
  92. function shall allocate a new pseudo-terminal device and return a
  93. non-negative integer representing a file descriptor, which is connected
  94. to its master device.
  95. Otherwise, -1 shall be returned and errno set to indicate the error.
  96. .Sh ERRORS
  97. The
  98. .Fn posix_openpt
  99. function shall fail if:
  100. .Bl -tag -width Er
  101. .It Bq Er ENFILE
  102. The system file table is full.
  103. .It Bq Er EINVAL
  104. The value of
  105. .Fa oflag
  106. is not valid.
  107. .It Bq Er EAGAIN
  108. Out of pseudo-terminal resources.
  109. .El
  110. .Sh SEE ALSO
  111. .Xr ptsname 3 ,
  112. .Xr pts 4 ,
  113. .Xr tty 4
  114. .Sh STANDARDS
  115. The
  116. .Fn posix_openpt
  117. function conforms to
  118. .St -p1003.1-2001 .
  119. The ability to use
  120. .Dv O_CLOEXEC
  121. is an extension to the standard.
  122. .Sh HISTORY
  123. The
  124. .Fn posix_openpt
  125. function appeared in
  126. .Fx 5.0 .
  127. In
  128. .Fx 8.0 ,
  129. this function was changed to a system call.
  130. .Sh NOTES
  131. The flag
  132. .Dv O_NOCTTY
  133. is included for compatibility; in
  134. .Fx ,
  135. opening a terminal does not cause it to become a process's controlling
  136. terminal.
  137. .Sh AUTHORS
  138. .An \&Ed Schouten Aq Mt ed@FreeBSD.org