tcgetpgrp.3v

Upload User: acmefrp
Upload Date: 2010-03-06
Package Size: 23768k
Code Size: 3k
Category: OS Develop
Development Platform: C/C++
  1. ."  @(#)tcgetpgrp.3v 1.1 92/07/30 SMI; new for 4.1, POSIX
  2. .TH TCGETPGRP 3V "21 January 1990"
  3. .SH NAME
  4. tcgetpgrp, tcsetpgrp - get, set foreground process group ID
  5. .SH SYNOPSIS
  6. .LP
  7. .nf
  8. .ft B
  9. #include <sys/types.h>
  10. .ft
  11. .fi
  12. .LP
  13. .nf
  14. .ft B
  15. pid_t tcgetpgrp(fd)
  16. int fd;
  17. .ft
  18. .fi
  19. .LP
  20. .nf
  21. .ft B
  22. int tcsetpgrp(fd, pgrp_id)
  23. int fd;
  24. pid_t pgrp_id;
  25. .ft R
  26. .fi
  27. .SH DESCRIPTION
  28. .IX "tcgetpgrp()" "" "fLtcgetpgrp()fR (em get foreground process group ID" ""
  29. .IX "get" "foreground process group ID"
  30. .IX "group ID" "get foreground process group ID"
  31. .IX "tcsetpgrp()" "" "fLtcsetpgrp()fR (em set foreground process group ID" ""
  32. .IX "set" "foreground process group ID"
  33. .IX "group ID" "set foreground process group ID"
  34. .LP
  35. .B tcgetpgrp(|) 
  36. returns the value of the process group
  37. .SM ID
  38. of the foreground process group associated with the terminal (see
  39. .SM NOTESs0).
  40. .B tcgetpgrp(|)
  41. is allowed from a process that is a member 
  42. of a background process group;
  43. however, the information may be 
  44. subsequently changed by a process that is a member of a foreground 
  45. process group.
  46. .LP
  47. If the process has a controlling terminal,
  48. .B tcsetpgrp(|) 
  49. sets the foreground process group
  50. .SM ID
  51. associated with the terminal to
  52. .IR pgrp_id .
  53. The file associated with
  54. .I fd
  55. must be the controlling terminal and must be currently
  56. associated with the session of the calling process.
  57. The value of
  58. .I pgrp_id
  59. must match a process group
  60. .SM ID
  61. of a process in the same session as the calling process.
  62. .SH RETURN VALUES
  63. .LP
  64. On success,
  65. .B tcgetpgrp(|)
  66. returns
  67. the process group
  68. .SM ID
  69. of the foreground process group associated with the terminal.
  70. On failure,
  71. it returns
  72. -1
  73. and sets
  74. .B errno
  75. to indicate the error.
  76. .LP
  77. .B tcsetpgrp(|)
  78. returns:
  79. .TP
  80. 0
  81. on success.
  82. .TP
  83. -1
  84. on failure and sets
  85. .B errno
  86. to indicate the error.
  87. .SH ERRORS
  88. .LP
  89. If any of the following conditions occur, 
  90. .B tcgetpgrp(|)
  91. sets
  92. .B errno
  93. to:
  94. .TP 15
  95. .SM EBADF
  96. .I fd
  97. is not a valid file descriptor.
  98. .TP
  99. .SM ENOSYS
  100. .B tcgetpgrp(|)
  101. is not supported in this implementation.
  102. .TP
  103. .SM ENOTTY
  104. The calling process does not have a controlling terminal.
  105. .IP
  106. The file is not the controlling terminal.
  107. .LP
  108. If any of the following conditions occur, 
  109. .B tcsetpgrp(|)
  110. sets
  111. .B errno
  112. to:
  113. .TP 15
  114. .SM EBADF
  115. .I fd 
  116. is not a valid file descriptor.
  117. .TP
  118. .SM EINVAL
  119. The value of 
  120. .I pgrp_id 
  121. is not a valid process group
  122. .SM IDs0.
  123. .TP
  124. .SM ENOTTY
  125. The calling process does not have a controlling terminal.
  126. .IP
  127. The file is not the controlling terminal.
  128. .IP
  129. The controlling terminal is no longer associated with
  130. the session of the calling process.
  131. .TP
  132. .SM EPERM
  133. The value of
  134. .I pgrp_id
  135. is a valid process group
  136. .SM IDs0,
  137. but does not match the process group 
  138. .SM ID 
  139. of a process in the same session as the calling process.
  140. .SH SEE ALSO
  141. .BR setpgid (2V),
  142. .BR setsid (2V)
  143. .br
  144. .ne 7
  145. .SH NOTES
  146. .LP
  147. For
  148. .B tcgetpgrp(|)
  149. and
  150. .B tcsetpgrp(|)
  151. to behave as described above,
  152. .SM {_POSIX_JOB_CONTROL}
  153. must be in effect (see
  154. .BR sysconf (2V)).
  155. .SM {_POSIX_JOB_CONTROL}
  156. is always in effect
  157. on SunOS systems, but for portability, applications should call
  158. .B sysconf(|)
  159. to determine whether
  160. .SM {_POSIX_JOB_CONTROL}
  161. is in effect for the current system.
  162. .LP
  163. If
  164. .SM {_POSIX_JOB_CONTROL}
  165. is not defined on a system conforming to
  166. .I IEEE Std 1003.1-1988
  167. either
  168. .B tcgetpgrp(|)
  169. and
  170. .B tcsetpgrp(|)
  171. behave as described above, or 
  172. .B tcgetpgrp(|)
  173. and
  174. .B tcsetpgrp(|) 
  175. fail.