Unix system commands
Suppose, you're writing an executable that must be able to know which files are around and then do something
usefull with that information. As an example, let's pretend we're in a diectory with lots of JPEG images and
we want to make a gallery out of it. Each picture must be shown in a table entry plus some information for
people to watch.
Then the things we want to know are:
ls | grep jpg | wc ls -l *jpgand that would solve the bulk of the problem.
But how to do so from a running program? Can we get similar results when we're inside an executable?
Running system commands
MODULE tri; FROM SYSTEM IMPORT ADR; FROM SysLib IMPORT system; PROCEDURE SystemCommand (VAR command : ARRAY OF CHAR) : BOOLEAN; BEGIN IF system (ADR (command) ) = 0 THEN RETURN TRUE ELSE RETURN FALSE END END SystemCommand; BEGIN IF SystemCommand ("ls -1 .. | grep ps > file.dir") = TRUE THEN InOut.WriteString ("No error reported.") ELSE InOut.WriteString ("Error reported!") END; InOut.WriteLn; InOut.WriteBf END tri.See? That's easy. We just issue the command and put the data in a temporary file. Afterwards, we just open that file with TextIO.OpenInput and we plunder the data.
Page created 3 May 2005,