Jak tvorit .tar "on fly"? Kde najit format tar-u?

Petr Simek petrsi na jcu.cz
Sobota Duben 8 19:27:33 CEST 2000


On Sat, 8 Apr 2000, Petr Tomasek wrote:

> Jenomze tady ten stdin/stdout je ten zatarovany soubor; ty
> neztarovane zustavaji na disku - ja bych je potreboval taky
> predavat pres stdin/stdio (resp. primo v c-cku pres stream).

Tak to nevim - na vystup z taru jde hant na stdout pres'-O, --to-stdout'
ale na mit na stdin vtstup tarovanych souboru mi nedava moc smysl - 
respektive jak je od sebe oddelit. A hlavne tar se pouziva proto, ze
ke kazdemu souboru pribali info o majiteli, pravech, resi backup /dev
souboru atp) jak tohle davat pres stdin ....

Jedine neco na zpusob - create archive from stdin to stdout
                      - add to archive from stdin to stdout

> Nejlepsi by bylo neco jako:

> t=tgzlib_init(stdout);
> 
> f=tgzlib_add_file(t, "file1", 0660);
> fprintf(f, "blablalba"); ......
> tgzlib_close_file(f);
> 
> f=tgzlib_abb_file(t, "file2", 0644);
> fprintf(f, "blelbelbelbe"); ....
> tgzlib_close_file(t, f);

No - preju hodne stesti. Ale co se tyce taru - asi ten format by jste mohl
klidne udelat rucne - funguje to asi zhruba takhle - 

hlavicka 512B kde je jmeno souboru delka permisny atp, na jmeno je 100znaku
plus 100znaku na destinaci symlinku

kdyz je jmeno delsi nez 100 znaku nasleduji dalsi 512B bloky se jmenem
souboru

kdyz se jedna o link ktery ukazuje na destinaci delsi nez 100 nasleduje
zase potrebny pocet 512B bloku kde je ulozen nazev destinace.

Pak nasleduje obsah souboru je li nejaky, zarovnany na 512B s tim, ze kdyz
nedosahuje doplni se nulama. (info o skutecne delce je v hlavicce)

Takze staci ze zdrojaku nastudovat format hlavicky kde je vsechno dulezite
k souboru napsane a muzete generovat vlastni tar.

Jeste poznamka - minimalni tar soubor by mel byt asi 10240B jinak tar
mekta neco o predcasnem konci souboru ...

> Petr Tomasek, http://www.etf.cuni.cz/~tomasek/

*------------------------------------------------------------------------*
|                          Petr Simek   APS JU                           |
|                             petrsi na jcu.cz                              |
*------------------------------------------------------------------------*



Další informace o konferenci Linux