DIRECTORY UnixSysCallExtensions USING [Spawn], Rope, UXStrings, UnixTypes USING [CHARPtr]; Test2: CEDAR PROGRAM IMPORTS UnixSysCallExtensions, UXStrings ~ BEGIN ROPE: TYPE ~ Rope.ROPE; Spawn: PROC [cmd, in, out, err: UnixTypes.CHARPtr] RETURNS [status: INT] ~ { RETURN [ UnixSysCallExtensions.Spawn [cmd, in, out, err] ]; }; Foo: PROC [cmdRope: ROPE, inputRope: ROPE] RETURNS [status: INT] ~ { cmdString: UnixTypes.CHARPtr ~ UXStrings.Create[from: cmdRope]; inputString: UnixTypes.CHARPtr ~ UXStrings.Create[from: inputRope]; outputRope: ROPE ~ "/worsel/pelegri/tmp/OUTPUT"; outputString: UnixTypes.CHARPtr ~ UXStrings.Create[from: outputRope]; errorRope: ROPE ~ "/worsel/pelegri/tmp/ERROR"; errorString: UnixTypes.CHARPtr ~ UXStrings.Create[from: errorRope]; status ¬ Spawn[cmdString, inputString, outputString, errorString]; }; [] ¬ Foo["cd /worsel/pelegri/tmp ; /bin/csh -s", "/worsel/pelegri/tmp/INPUT"]; END. € Test2.mesa Copyright Σ 1991 by Xerox Corporation. All rights reserved. inputRope: ROPE ~ "/worsel/pelegri/tmp/INPUT"; Κc–(cedarcode) style•NewlineDelimiter ™™ Jšœ Οeœ1™