dovresti poter gestire le pipe (ma sarà poi femminile?), che sono quasi sicuro esistono anche sotto dos.
Io per applicazioni gui sotto linux, sia per kylix che per lazarus, utilizzo la libreria libc che ha alcune funzioni che gestiscono le pipe (che sono poi le stesse funzioni che si utilizzano in C).
Però sai bene che per unix tutto è un file, coso che non è per il dos.
Codice PHP:
var
...
str : string;
CmdArr : array[0..512] of char;
StrArr : array[0..512] of char;
buf : pointer;
size : longint;
H : integer;
F : PIOFILE;
pPipeStr : Pointer;
...
// in str c'è il comando (devi finire con #0)
// potrebbe essere str := 'ls -la ' +#0; (o l'equivalente dos str := 'DIR ' + #0;
StrCopy(cmdArr, @str[1]);
// apro la comunicazione
F := popen(CmdArr, 'r');
if assigned(F) then
begin
repeat
// posso usare le normali funzioni di input
// leggi riga dopo riga come se apparissa sul monitor
pPipeStr := fgets(StrArr, 1024, F);
// lo converte poi con StrPas o simili.
until not Assigned(pPipeStr);
// ricordiamoci di chiudere la comunicazione
pClose(F);
end;
// posso anche scrivere su un pipe, anche se è meno frequente
// doverlo fare tra una applicazione gui ed una console
ciao
sergio