summaryrefslogtreecommitdiff
path: root/manual/job.texi
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1996-12-20 01:39:50 +0000
committerUlrich Drepper <drepper@redhat.com>1996-12-20 01:39:50 +0000
commit6d52618b15cbe25ed4822ac51321db292f28ccda (patch)
treebafef072c0f5cb67c09d7c1789888d4310ac568f /manual/job.texi
parent10dc2a90b7f86d9bc1be9d1b9305a781882f7ac5 (diff)
Update from main archive 961219cvs/libc-961220
Thu Dec 19 23:28:33 1996 Ulrich Drepper <drepper@cygnus.com> * resolv/resolv.h: Update from BIND 4.9.5-P1. * resolv/res_comp.c: Likewise. * resolv/res_debug.c: Likewise. * resolv/Banner: Update version number. Thu Dec 19 20:58:53 1996 Ulrich Drepper <drepper@cygnus.com> * elf/dlfcn.h: Add extern "C" wrapper. * io/utime.h: Don't define NULL since this isn't allowed in POSIX. * io/sys/stat.h: Declare `lstat' only if __USE_BSD || __USE_XOPEN_EXTENDED. * locale/locale.h: Define NULL. * math/math.c: Don't include <errno.h> to define math errors. * stdlib/stdlib.h: Likewise. * posix/unistd.h: Don't declare environ. * posix/sys/utsname.h (struct utsname): Declare member domainname as __domainname is !__USE_GNU. * signal/signal.h: Declare size_t only if __USE_BSD || __USE_XOPEN_EXTENDED. * stdio/stdio.h: Don't declare cuserid when __USE_POSIX, but instead when __USE_XOPEN. * string/string.h: Define strndup only if __USE_GNU. * sysdeps/unix/sysv/linux/clock.c: New file. * sysdeps/unix/sysv/linux/timebits.h: Define CLOCKS_PER_SEC as 1000000 per X/Open standard. * features.h: Add code to recognize _POSIX_C_SOURCE value 199309. Define __USE_POSIX199309. * posix/unistd.h: Declare fdatasync only if __USE_POSIX199309. * time/time.c: Declare nanosleep only if __USE_POSIX199309. Patches by Rüdiger Helsch <rh@unifix.de>. * locale/locale.h: Add declaration of newlocale and freelocale. * new-malloc/Makefile (distibute): Add mtrace.awk. (dist-routines): Add mcheck and mtrace. (install-lib, non-lib.a): Define as libmcheck.a. * new-malloc/malloc.h: Add declaration of __malloc_initialized. * new-malloc/mcheck.c: New file. * new-malloc/mcheck.h: New file. * new-malloc/mtrace.c: New file. * new-malloc/mtrace.awk: New file. * posix/unistd.h: Correct prototype for usleep. * sysdeps/unix/bsd/usleep.c: De-ANSI-declfy. Correct return type. * sysdeps/unix/sysv/linux/usleep.c: Real implementation based on nanosleep. * signal/signal.h: Change protoype of __sigpause to take two arguments. Remove prototype for sigpause. Add two different macros named sigpause selected when __USE_BSD or __USE_XOPEN are defined. This is necessary since the old BSD definition of theis function collides with the X/Open definition. * sysdeps/posix/sigpause.c: Change function definition to also fit X/Open definition. * sysdeps/libm-i387/e_exp.S: Make sure stack is empty when the function is left. * sysdeps/libm-i387/e_expl.S: Likewise. Patch by HJ Lu. 1996-12-17 Paul Eggert <eggert@twinsun.com> * many, many files: Spelling corrections. * catgets/catgetsinfo.h (mmapped): Renamed from mmaped (in struct catalog_info.status). * mach/err_kern.sub (err_codes_unix), string/stratcliff.c (main): Fix spelling in message. * po/libc.pot: Fix spelling in message for `zic'; this anticipates a fix in the tzcode distribution. Wed Dec 18 15:48:02 1996 Ulrich Drepper <drepper@cygnus.com> * time/strftime.c: Implement ^ flag to cause output be converted to use upper case characters. * time/zic.c: Update from ADO tzcode1996n. Wed Dec 18 14:29:24 1996 Erik Naggum <erik@naggum.no> * time/strftime.c (add): Don't change global `i' until all is over. Define NULL is not already defined. Tue Dec 17 09:49:03 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * libio/iovsprintf.c (_IO_vsprintf): Change `&sf' to `&sf._sbf._f' to avoid the need for a cast. * libio/iovsscanf.c (_IO_vsscanf): Likewise. * sunrpc/rpc/xdr.h: Add prototype for xdr_free.
Diffstat (limited to 'manual/job.texi')
-rw-r--r--manual/job.texi50
1 files changed, 25 insertions, 25 deletions
diff --git a/manual/job.texi b/manual/job.texi
index 1ac15fffc4..f97aceb61c 100644
--- a/manual/job.texi
+++ b/manual/job.texi
@@ -54,7 +54,7 @@ terminate all the processes in the foreground process group.
@cindex session
A @dfn{session} is a larger group of processes. Normally all the
-proccesses that stem from a single login belong to the same session.
+processes that stem from a single login belong to the same session.
Every process belongs to a process group. When a process is created, it
becomes a member of the same process group and session as its parent
@@ -154,7 +154,7 @@ calls @code{setsid} to become the leader of a new session.
@cindex controlling terminal, access to
Processes in the foreground job of a controlling terminal have
-unrestricted access to that terminal; background proesses do not. This
+unrestricted access to that terminal; background processes do not. This
section describes in more detail what happens when a process in a
background job tries to access its controlling terminal.
@@ -213,7 +213,7 @@ involved.
@iftex
@itemize @bullet
-@item
+@item
@ref{Data Structures}, introduces the example and presents
its primary data structures.
@@ -310,7 +310,7 @@ job *
find_job (pid_t pgid)
@{
job *j;
-
+
for (j = first_job; j; j = j->next)
if (j->pgid == pgid)
return j;
@@ -324,7 +324,7 @@ int
job_is_stopped (job *j)
@{
process *p;
-
+
for (p = j->first_process; p; p = p->next)
if (!p->completed && !p->stopped)
return 0;
@@ -338,7 +338,7 @@ int
job_is_completed (job *j)
@{
process *p;
-
+
for (p = j->first_process; p; p = p->next)
if (!p->completed)
return 0;
@@ -355,7 +355,7 @@ job_is_completed (job *j)
When a shell program that normally performs job control is started, it
has to be careful in case it has been invoked from another shell that is
-already doing its own job control.
+already doing its own job control.
A subshell that runs interactively has to ensure that it has been placed
in the foreground by its parent shell before it can enable job control
@@ -413,7 +413,7 @@ int shell_is_interactive;
void
init_shell ()
@{
-
+
/* @r{See if we are running interactively.} */
shell_terminal = STDIN_FILENO;
shell_is_interactive = isatty (shell_terminal);
@@ -512,7 +512,7 @@ send a @code{SIGTSTP} signal to the process group of the process, not
just to the process itself. @xref{Signaling Another Process}.
Finally, each child process should call @code{exec} in the normal way.
-This is also the point at which redirection of the standard input and
+This is also the point at which redirection of the standard input and
output channels should be handled. @xref{Duplicating Descriptors},
for an explanation of how to do this.
@@ -564,9 +564,9 @@ launch_process (process *p, pid_t pgid,
@{
dup2 (errfile, STDERR_FILENO);
close (errfile);
- @}
-
- /* @r{Exec the new process. Make sure we exit.} */
+ @}
+
+ /* @r{Exec the new process. Make sure we exit.} */
execvp (p->argv[0], p->argv);
perror ("execvp");
exit (1);
@@ -590,7 +590,7 @@ launch_job (job *j, int foreground)
process *p;
pid_t pid;
int mypipe[2], infile, outfile;
-
+
infile = j->stdin;
for (p = j->first_process; p; p = p->next)
@{
@@ -638,7 +638,7 @@ launch_job (job *j, int foreground)
close (outfile);
infile = mypipe[0];
@}
-
+
format_job_info (j, "launched");
if (!shell_is_interactive)
@@ -704,13 +704,13 @@ put_job_in_foreground (job *j, int cont)
perror ("kill (SIGCONT)");
@}
@end group
-
+
/* @r{Wait for it to report.} */
wait_for_job (j);
-
+
/* @r{Put the shell back in the foreground.} */
tcsetpgrp (shell_terminal, shell_pgid);
-
+
@group
/* @r{Restore the shell's terminal modes.} */
tcgetattr (shell_terminal, &j->tmodes);
@@ -722,7 +722,7 @@ put_job_in_foreground (job *j, int cont)
@cindex background job, launching
If the process group is launched as a background job, the shell should
remain in the foreground itself and continue to read commands from
-the terminal.
+the terminal.
In the sample shell, there is not much that needs to be done to put
a job into the background. Here is the function it uses:
@@ -833,7 +833,7 @@ update_status (void)
@{
int status;
pid_t pid;
-
+
do
pid = waitpid (WAIT_ANY, &status, WUNTRACED|WNOHANG);
while (!mark_process_status (pid, status));
@@ -849,11 +849,11 @@ wait_for_job (job *j)
@{
int status;
pid_t pid;
-
+
do
pid = waitpid (WAIT_ANY, &status, WUNTRACED);
- while (!mark_process_status (pid, status)
- && !job_is_stopped (j)
+ while (!mark_process_status (pid, status)
+ && !job_is_stopped (j)
&& !job_is_completed (j));
@}
@end group
@@ -880,7 +880,7 @@ do_job_notification (void)
/* @r{Update status information for child processes.} */
update_status ();
-
+
jlast = NULL;
for (j = first_job; j; j = jnext)
@{
@@ -976,7 +976,7 @@ allocated and initialized.
Most real shells provide a complex user interface that has support for
a command language; variables; abbreviations, substitutions, and pattern
matching on file names; and the like. All of this is far too complicated
-to explain here! Instead, we have concentrated on showing how to
+to explain here! Instead, we have concentrated on showing how to
implement the core process creation and job control functions that can
be called from such a shell.
@@ -1058,7 +1058,7 @@ represents the size of a string large enough to hold the file name
returned by @code{ctermid}.
@end deftypevr
-See also the @code{isatty} and @code{ttyname} functions, in
+See also the @code{isatty} and @code{ttyname} functions, in
@ref{Is It a Terminal}.