Go to the first, previous, next, last section, table of contents.


Sending Input to Processes

Asynchronous subprocesses receive input when it is sent to them by Emacs, which is done with the functions in this section. You must specify the process to send input to, and the input data to send. The data appears on the "standard input" of the subprocess.

Some operating systems have limited space for buffered input in a PTY. On these systems, Emacs sends an EOF periodically amidst the other characters, to force them through. For most programs, these EOFs do no harm.

Subprocess input is normally encoded using a coding system before the subprocess receives it, much like text written into a file. You can use set-process-coding-system to specify which coding system to use (see section Process Information). Otherwise, the coding system comes from coding-system-for-write, if that is non-nil; or else from the defaulting mechanism (see section Default Coding Systems).

Function: process-send-string process-name string
This function sends process-name the contents of string as standard input. The argument process-name must be a process or the name of a process. If it is nil, the current buffer's process is used.

The function returns nil.

(process-send-string "shell<1>" "ls\n")
     => nil

---------- Buffer: *shell* ----------
...
introduction.texi               syntax-tables.texi~
introduction.texi~              text.texi
introduction.txt                text.texi~
...
---------- Buffer: *shell* ----------

Command: process-send-region process-name start end
This function sends the text in the region defined by start and end as standard input to process-name, which is a process or a process name. (If it is nil, the current buffer's process is used.)

An error is signaled unless both start and end are integers or markers that indicate positions in the current buffer. (It is unimportant which number is larger.)

Function: process-send-eof &optional process-name
This function makes process-name see an end-of-file in its input. The EOF comes after any text already sent to it.

If process-name is not supplied, or if it is nil, then this function sends the EOF to the current buffer's process. An error is signaled if the current buffer has no process.

The function returns process-name.

(process-send-eof "shell")
     => "shell"


Go to the first, previous, next, last section, table of contents.