Linux - popen

Jindrich Fucik fulda na seznam.cz
Pátek Srpen 14 10:18:48 CEST 2020


a-ha, mezi tar a gzip je troche rozdíl.
Záleží jaké máš představy, buď si budeš hrát s forkováním a voláním systému, nebo si natáhneš knihovny. Pro zipování je to man 3 zlib.
Já mám raději kompaktnější programy, takže bych sáhl po knihovnách, ale někdo má raději otevřenější a třeba si představuje nějakou možnost nagradit gzip za winzip nebo jiný LZW kompresovač který neznám a pak je volání vnějšího asi výhodné.

---------- Původní e-mail ----------

Od: Jaroslav Buchta <jaroslav.buchta na hascomp.cz>

Komu: hw-list na list.hw.cz

Datum: 14. 8. 2020 9:37:24

Předmět: Re: Linux - popen

Co se tyce tar, tak jasne, asi lepsi pouzit gzip v tomto pripade?
Presne takhle to chci jen se mi uplne nelibi pouziti dalsiho vlakna, coz 
se zde myslim predpoklada. Data nejsou moc velka, typicky par kB, dalo 
by se to krmit a odebirat po kouskach?
Pouziti knihovny pro openssl jsem zvazoval, ale jeste tam je to zipovani 
coz je asi jednodussi pouzitim prikazu? A to uz se pak rovnou muze 
zaradit i to sifrovani predpokladam. Na prikazove radce to funguje 
presne podle mych predstav a na PC z toho umim v C# data i dostat.

Dne 14.08.2020 v 9:27 Jindrich Fucik napsal(a):
> chápu to správně, že máš program, který má u sebe nějaká data, ta data chce poslat do řetězce tar - | openssl a zase si sebrat výstup a ten dál zpracovat?
>
> Něco jako tohle?
> program --- data ---+                  +--- data2 --->
>                      |                  |
>                       `-- tar -- ssl --'
>
> To není moc těžké, jen je potřeba vědět, že tvůj program musí být schopen odebírat data když je openssl vytváří. Takže potřebuješ dva forky. Jeden krmí tar a druhej čte openssl. Příklad jak zavřít,  respektive modifikovat stdin a stdout pro dva forky je vlastně součástí příkladu pro fork.
>
> Ale moc mi v tomhle řetězci nedává smysl použití taru, nevím, jaká je jeho přidaná hodnota? Prostě bych použil openssl library a udělal všechno v rámci jednoho programu.
>
>
> ---------- Původní e-mail ----------
>
> Od: Jaroslav Buchta <jaroslav.buchta na hascomp.cz>
>
> Komu: hw-list na list.hw.cz
>
> Datum: 14. 8. 2020 9:05:34
>
> Předmět: Re: Linux - popen
>
> 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
> _______________________________________________
> 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