265 |
the buffer as output is inserted. (However, if the coding system chosen |
the buffer as output is inserted. (However, if the coding system chosen |
266 |
for decoding output is @code{undecided}, meaning deduce the encoding |
for decoding output is @code{undecided}, meaning deduce the encoding |
267 |
from the actual data, then redisplay sometimes cannot continue once |
from the actual data, then redisplay sometimes cannot continue once |
268 |
non-@sc{ascii} characters are encountered. There are fundamental |
non-@acronym{ASCII} characters are encountered. There are fundamental |
269 |
reasons why it is hard to fix this; see @ref{Output from Processes}.) |
reasons why it is hard to fix this; see @ref{Output from Processes}.) |
270 |
|
|
271 |
Otherwise the function @code{call-process} does no redisplay, and the |
Otherwise the function @code{call-process} does no redisplay, and the |
468 |
|
|
469 |
@defvar process-connection-type |
@defvar process-connection-type |
470 |
@cindex pipes |
@cindex pipes |
471 |
@cindex @sc{pty}s |
@cindex @acronym{PTY}s |
472 |
This variable controls the type of device used to communicate with |
This variable controls the type of device used to communicate with |
473 |
asynchronous subprocesses. If it is non-@code{nil}, then @sc{pty}s are |
asynchronous subprocesses. If it is non-@code{nil}, then @acronym{PTY}s are |
474 |
used, when available. Otherwise, pipes are used. |
used, when available. Otherwise, pipes are used. |
475 |
|
|
476 |
@sc{pty}s are usually preferable for processes visible to the user, as |
@acronym{PTY}s are usually preferable for processes visible to the user, as |
477 |
in Shell mode, because they allow job control (@kbd{C-c}, @kbd{C-z}, |
in Shell mode, because they allow job control (@kbd{C-c}, @kbd{C-z}, |
478 |
etc.) to work between the process and its children, whereas pipes do |
etc.) to work between the process and its children, whereas pipes do |
479 |
not. For subprocesses used for internal purposes by programs, it is |
not. For subprocesses used for internal purposes by programs, it is |
480 |
often better to use a pipe, because they are more efficient. In |
often better to use a pipe, because they are more efficient. In |
481 |
addition, the total number of @sc{pty}s is limited on many systems and |
addition, the total number of @acronym{PTY}s is limited on many systems and |
482 |
it is good not to waste them. |
it is good not to waste them. |
483 |
|
|
484 |
The value of @code{process-connection-type} takes effect when |
The value of @code{process-connection-type} takes effect when |
494 |
@end smallexample |
@end smallexample |
495 |
|
|
496 |
To determine whether a given subprocess actually got a pipe or a |
To determine whether a given subprocess actually got a pipe or a |
497 |
@sc{pty}, use the function @code{process-tty-name} (@pxref{Process |
@acronym{PTY}, use the function @code{process-tty-name} (@pxref{Process |
498 |
Information}). |
Information}). |
499 |
@end defvar |
@end defvar |
500 |
|
|
597 |
@end defun |
@end defun |
598 |
|
|
599 |
@defun process-id process |
@defun process-id process |
600 |
This function returns the @sc{pid} of @var{process}. This is an |
This function returns the @acronym{PID} of @var{process}. This is an |
601 |
integer that distinguishes the process @var{process} from all other |
integer that distinguishes the process @var{process} from all other |
602 |
processes running on the same computer at the current time. The |
processes running on the same computer at the current time. The |
603 |
@sc{pid} of a process is chosen by the operating system kernel when the |
@acronym{PID} of a process is chosen by the operating system kernel when the |
604 |
process is started and remains constant as long as the process exists. |
process is started and remains constant as long as the process exists. |
605 |
@end defun |
@end defun |
606 |
|
|
724 |
data appears on the ``standard input'' of the subprocess. |
data appears on the ``standard input'' of the subprocess. |
725 |
|
|
726 |
Some operating systems have limited space for buffered input in a |
Some operating systems have limited space for buffered input in a |
727 |
@sc{pty}. On these systems, Emacs sends an @sc{eof} periodically amidst |
@acronym{PTY}. On these systems, Emacs sends an @acronym{EOF} periodically amidst |
728 |
the other characters, to force them through. For most programs, |
the other characters, to force them through. For most programs, |
729 |
these @sc{eof}s do no harm. |
these @acronym{EOF}s do no harm. |
730 |
|
|
731 |
Subprocess input is normally encoded using a coding system before the |
Subprocess input is normally encoded using a coding system before the |
732 |
subprocess receives it, much like text written into a file. You can use |
subprocess receives it, much like text written into a file. You can use |
782 |
|
|
783 |
@defun process-send-eof &optional process-name |
@defun process-send-eof &optional process-name |
784 |
This function makes @var{process-name} see an end-of-file in its |
This function makes @var{process-name} see an end-of-file in its |
785 |
input. The @sc{eof} comes after any text already sent to it. |
input. The @acronym{EOF} comes after any text already sent to it. |
786 |
|
|
787 |
If @var{process-name} is not supplied, or if it is @code{nil}, then |
If @var{process-name} is not supplied, or if it is @code{nil}, then |
788 |
this function sends the @sc{eof} to the current buffer's process. An |
this function sends the @acronym{EOF} to the current buffer's process. An |
789 |
error is signaled if the current buffer has no process. |
error is signaled if the current buffer has no process. |
790 |
|
|
791 |
The function returns @var{process-name}. |
The function returns @var{process-name}. |
898 |
This function sends a signal to process @var{process}. The argument |
This function sends a signal to process @var{process}. The argument |
899 |
@var{signal} specifies which signal to send; it should be an integer. |
@var{signal} specifies which signal to send; it should be an integer. |
900 |
|
|
901 |
You can specify the target process by its process @sc{id}; that allows |
You can specify the target process by its process @acronym{ID}; that allows |
902 |
you to send signals to processes that are not children of Emacs. |
you to send signals to processes that are not children of Emacs. |
903 |
@end defun |
@end defun |
904 |
|
|
1480 |
A network connection is handled by Lisp much like a subprocess, and is |
A network connection is handled by Lisp much like a subprocess, and is |
1481 |
represented by a process object. However, the process you are |
represented by a process object. However, the process you are |
1482 |
communicating with is not a child of the Emacs process, so it has no |
communicating with is not a child of the Emacs process, so it has no |
1483 |
process @sc{id}, and you can't kill it or send it signals. All you |
process @acronym{ID}, and you can't kill it or send it signals. All you |
1484 |
can do is send and receive data. @code{delete-process} closes the |
can do is send and receive data. @code{delete-process} closes the |
1485 |
connection, but does not kill the program at the other end; that |
connection, but does not kill the program at the other end; that |
1486 |
program must decide what to do about closure of the connection. |
program must decide what to do about closure of the connection. |