help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to communicate with a running external process with given PID?


From: Kevin Rodgers
Subject: Re: How to communicate with a running external process with given PID?
Date: Mon, 22 Jul 2013 07:02:06 -0600
User-agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.28) Gecko/20120306 Thunderbird/3.1.20

On 7/20/13 3:06 AM, Thorsten Jolitz wrote:
say I want to call another program (more exactly, another Lisp program
that is not Emacs Lisp) from an Emacs Lisp program.

My special requirement is that I don't want to start a new Emacs
subprocess, but want to communicate with an existing (running) process.
And there maybe several running instances of this program at the same
time, so I want to communicate with one existing (running) process with
a given PID.

Now there is splendid support in Emacs for communicating with other
programs, but always based on the assumption that Emacs starts and
controls a new subprocess.

There is chapter 37.12 "Accessing Other Processes" in the Elisp manual,
and I can do successfully

,-------------------------
| (process-attributes PID)
`-------------------------

to receive a lot of information about the process I want to communicate
with.

But what then? Where are the (e.g.) `process-send-string' or
`process-send-region' functions for external processes I could use to
communicate with my external program?

I could run a server in the external lisp program and use a
network-connection-object to send http-requests (e.g. with the help of
emacs-request.el) via TCP - but that seems to be total overkill for my
requirements.

I just want to use a running external process with a given PID in a
similar way I would use (a)synchronous processes created from Emacs with
`call-process' or `start-process'. How can I do that?

Maybe there is an obvious answer to this question that I don't see.

Since Emacs did not start the external process, it does not have access to its standard input stream -- unless your OS provides a way to do that (e.g. via a
special /dev file).

How would you communicate with the external process, from any other program?

--
Kevin Rodgers
Denver, Colorado, USA




reply via email to

[Prev in Thread] Current Thread [Next in Thread]