ntpd: set offset to 0.0 in "usync" event
[oweals/busybox.git] / docs / ctty.htm
index 26d2c79569f450092b6343035e4354245cd43554..3cb2dd2bdba88d5b7d4f9115f0d8796de66ecce0 100644 (file)
@@ -9,6 +9,8 @@
 
 <p>Before looking at the Linux implementation, first a general Unix
 description of threads, processes, process groups and sessions.
+</p><p>
+(See also <a href="http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap11.html">General Terminal Interface</a>)
 </p><p>A session contains a number of process groups, and a process group
 contains a number of processes, and a process contains a number
 of threads.
@@ -145,7 +147,7 @@ PID (process ID), PGID (process group ID) and SID (session ID)
 of processes. With a shell that does not know about job control,
 like <code>ash</code>, each of its children will be in the same session
 and have the same process group as the shell. With a shell that knows
-about job control, like <code>bash</code>, the processes of one pipeline. like
+about job control, like <code>bash</code>, the processes of one pipeline, like
 </p><blockquote>
 <pre>% cat paper | ideal | pic | tbl | eqn | ditroff &gt; out
 </pre>
@@ -227,7 +229,7 @@ controlling tty. If there is none, this returns a random value
 larger than 1 that is not a process group ID.
 </p><p>A process can set the foreground process group in its session
 using <code>tcsetpgrp(fd,pgrp)</code>, where <code>fd</code> refers to its
-controlling tty, and <code>pgrp</code> is a process group in the
+controlling tty, and <code>pgrp</code> is a process group in
 its session, and this session still is associated to the controlling
 tty of the calling process.
 </p><p>How does one get <code>fd</code>? By definition, <code>/dev/tty</code>
@@ -277,6 +279,7 @@ and inspect it by
 Again, if TOSTOP is set but the background process ignores or blocks
 the SIGTTOU signal, or if its process group is orphaned (see below),
 then the write() returns an EIO error, and no signal is sent.
+[vda: correction. SUS says that if SIGTTOU is blocked/ignored, write succeeds. ]
 <p>
 </p><h3>Orphaned process groups</h3>
 
@@ -365,7 +368,7 @@ this is a great mystery.
 becomes its controlling tty.
 </p><p>The BSD approach is that one has to explicitly call
 </p><blockquote>
-<pre>ioctl(fd, TIOCSCTTY, ...);
+<pre>ioctl(fd, TIOCSCTTY, 0/1);
 </pre>
 </blockquote>
 
@@ -378,6 +381,8 @@ and (ii) it does not yet have a controlling tty, and
 (iii) maybe the tty should not already control some other session;
 if it does it is an error if we aren't root, or we steal the tty
 if we are all-powerful.
+[vda: correction: third parameter controls this: if 1, we steal tty from
+any such session, if 0, we don't steal]
 </p><p>Opening some terminal will give us a controlling tty,
 provided that (i) the current process is a session leader, and
 (ii) it does not yet have a controlling tty, and