Jednoduchy program v C (was: grep -b nefunguje)
Jaroslav Lukesh
lukesh na k-net.cz
Úterý Březen 6 09:46:23 CET 2001
| Odesílatel: Alexandr Malusek <malusek na hroch.ujf.cas.cz>
| lukesh na k-net.cz (Jaroslav Lukesh) writes:
|
| > Program by mel najit pozici textoveho retezce (definovaneho pro
| > jednoduchost treba jako konstantu) na zadanem offsetu 1024B bloku dat
| > (anebo kdekoliv - je to uplne jedno). Vstupem by byl jakkoliv veliky
| > binarni soubor (20GB) a vystupem cislo bloku vzdy na novem radku (+
nejaky
| > definovany text) tak, aby se dal vystup presmerovat do souboru a ten
| > posleze spustit.
|
| Jednoduchou verzi programu prikladam. Velikost bloku je definovana
| konstantou BUFSIZE, retezec je ulozen v poli "pat". Jednotlive
| elementy lze zadavat napriklad jako znakove konstanty ('a'), decimalni
| konstanty (147) nebo hexadecimalni konstanty (0x01). Velikost pole si
| kompilator urci sam pres operator sizeof().
Wow!
Dekuji mockrat, kdybyste byl holka, dal bych vam pusu :-)
Nechcete nahodou tenhle programek dat k dispozici ostatnim celosvetove,
treba prostrednictvim freshmeatu a sourceforge?
Jeste bych mel dotaz ohledne
printf("%lu\n", block);
potreboval bych tam v podstate dostat dd, je to takhle spravne?
printf("%lu\n", "dd if=/dev/hdd2 of=/mnt/d1/solved_", block, " bs=1024
count=128 skip=", block);
Tohle by melo (posleze) ulozit 128kB soubor z nasledujicich bloku, kdyz
proste uz neni k dipozici zacatek disku a tedy ani lde (linux disk editor)
si se svym jinak fantastickym zachrannym skriptem pro soubory, ktere nelze
ani undeletovat, ani nevrzne.
Je to tak spravne? Co "%lu\n" presne dela? Novy radek?
Jeste jednou dekuji mockrat.
Zdravi
Jaroslav Lukesh
--------------------------------------------------
note: Bill Gates to Hell!
Další informace o konferenci Linux