[Armedbear-devel] Question about pipes
Erik Huelsmann
ehuels at gmail.com
Tue May 13 18:56:06 UTC 2014
Hi Rafael,
On Mon, May 12, 2014 at 11:20 PM, Sistemas <sistemas at dedaloingenieros.com>wrote:
> Hi:
>
> I'm trying to start some processes and connect them using pipes with ABCL
> (like Unix shell pipes). I've reviewed the documentation but I haven't
> found
> anything. Are I missing something? If not, are there any plans of adding
> input, output and error parameters for run-program (like SBCL, CCL, etc.)?
>
>
There's a function like that in run-program.lisp:
(defun run-program (program args &key environment (wait t)
clear-environment)
"Run PROGRAM with ARGS in with ENVIRONMENT variables.
Possibly WAIT for subprocess to exit.
Optionally CLEAR-ENVIRONMENT of the subprocess of any non specified values.
Creates a new process running the the PROGRAM.
ARGS are a list of strings to be passed to the program as arguments.
For no arguments, use nil which means that just the name of the
program is passed as arg 0.
Returns a process structure containing the JAVA-OBJECT wrapped Process
object, and the PROCESS-INPUT, PROCESS-OUTPUT, and PROCESS-ERROR streams.
c.f. http://download.oracle.com/javase/6/docs/api/java/lang/Process.html
Notes about Unix environments (as in the :environment):
* The ABCL implementation of run-program, like SBCL, Perl and many
other programs, copies the Unix environment by default.
* Running Unix programs from a setuid process, or in any other
situation where the Unix environment is under the control of
someone else, is a mother lode of security problems. If you are
contemplating doing this, read about it first. (The Perl
community has a lot of good documentation about this and other
security issues in script-like programs.
The &key arguments have the following meanings:
:environment
An alist of STRINGs (name . value) describing new
environment values that replace existing ones.
:clear-env
If non-NIL, the current environment is cleared before the
values supplied by :environment are inserted.
:wait
If non-NIL, which is the default, wait until the created process
finishes. If NIL, continue running Lisp until the program
finishes.
"
Does that solve your problem?
--
Bye,
Erik.
http://efficito.com -- Hosted accounting and ERP.
Robust and Flexible. No vendor lock-in.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/armedbear-devel/attachments/20140513/bb3d75e8/attachment.html>
-------------- next part --------------
_______________________________________________
Armedbear-devel mailing list
Armedbear-devel at common-lisp.net
http://common-lisp.net/cgi-bin/mailman/listinfo/armedbear-devel
More information about the armedbear-devel
mailing list