Linux - popen
Ladislav Vaiz
spam na nagano.cz
Pátek Srpen 14 09:24:58 CEST 2020
V unixovém duchu by bylo mít ty programy dva.
Misto dočasneho souboru můžete použít pojmenovanou rouru (příkaz nebo
funkce mkfifo). Budete ale muset řešit po jakých blocích to kouskovat,
aby nedošlo k blokování.
Nebo kompromis a mít jeden dvouvláknový program, pokud nelze mít dva
programy.
Samozřejmě lze přesměrovat i více filedeskriptorů a vyhnout se rouře,
ale ne přes open. Tradiční je otevřít si dvě roury, fork, v potomkovi
zavřít soubory 0 a 1, zduplikovat deskriptory roury, aby byly na 0 a 1
(stdin, stdout) a exec. Rodič pak komunikuje přes roury.
Novější způsob (nevím, jak kompatibilní s ne-linuxy) je forkpty.
Poslední dva způsoby pracují s jedním procesem, takže by měly spouštět
shell, který vyřeší propojení procesů: sh -c tar|openssl
Není snažší mít ty procesy dva? :-)
L.
Dne 14.08.2020 v 9:05 Jaroslav Buchta napsal(a):
> Zretezit tar a openssl je jasne, ale jde mi o to, ze mam nejake pole v
> pameti, to chci dat jako vstup a vystup by se mi libilo zase primo
> precist do pameti a vyhnout se docasnym souborum. Neco jako kdyz se
> presmeruje zaroven konzolovy vstup i vystup na soubory ale obracene.
> Jen mam dojem, ze to nejde nebo nejakym zpusobem ano?
>
> Dne 14.08.2020 v 8:52 Ladislav Vaiz napsal(a):
>> Ano, program bude číst ze stdin a zapisovat do stdout. Přesměrování
>> je věc volajícího. Ale myslím si, že k tomu žádný program nebude
>> třeba, stačí s shellu napsat něco jako tar cz | openssl
>> V C si můžete popen použít vícekrát.
>> L.
>>
>> Dne 14.08.2020 v 8:39 Jaroslav Buchta napsal(a):
>>> Potrebuji zazipovat skrz tar a zasifrovat skrz openssl nejaka data a
>>> libil by se mi system kde by byl vstup i vystup skrz pipe, jde to
>>> nejak?
>>>
>>> Zatim mam dojem, ze jde vzdy jen jeden smer, aspon u teto funkce
>>
>>
>> _______________________________________________
>> HW-list mailing list - sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list