@kemi: C-ben, ha system-mel meghívok egy shell parancsot, el lehet valahogy téríteni a kimenetét egy streambe? Hát, ha úgy hívod meg, hogy addig a program futása megáll, amíg a másik fut, akkor úgy kell, hogy a parancs meghívása így nézzen ki, hogy akarmi_program > /tmp/akarmi_program.log aztán utána a végeredményt egyszerűen kiolvasod a fájlból.
Ha process-t indítasz, akkor hozzáférsz mindhárom (stdin, stdout, stderr) csőhöz, de C-ből nem tudom, hogy tudod ezt megtenni. Leírom, hogy megy Pascalban, hátha támpontot ad ahhoz, hogy mit keress:program mittudomen;
uses process
var
faszom: tprocess;
buffer: array of char;
l: longword;
hagydmarabbabazdmeg: boolean;
begin
faszom := tprocess.create(nil);
faszom.Options := [poUsePipes];
faszom.commandline := 'kurvaanyad -xy seggem -yz basszameg -zx spectrum'; // :P
faszom.execute;
if (not faszom.running) then
begin
writeln('Failed to start process.');
halt;
end;
hagydmarabbabazdmeg := false;
while (not hagydmarabbabazdmeg) do
begin
l := proc.stderr.numbytesavailable;
if (l > 0) then
begin
setlength(buffer, l);
faszom.stderr.read(buffer[0], l);
end;
if (buffer[l - 2] + buffer[l - 1] <> 'ok') then
begin
hagydmarabbabazdmeg := true;
end;
end;
faszom.terminate;
end. @kemi: Kurva lassú a netem, és kénytelen vagyok Opera Minit használni, viszont a fejlécek úgy néznek ki mint explorerbe, vagyis itt se működik a CSS. Hát az kurwa érdekes, Operában megy, én azt használok. |