[FoLUG]Recupero file da CD (e 2 ...)

PalmaWay folug@lists.linux.it
Mon, 17 Mar 2003 19:55:48 +0100


This is a multi-part message in MIME format.

--=====000_Dragon734486160846_=====
Content-Type: text/plain;
      charset="us-ascii"
Content-Transfer-Encoding: 8bit

Anzitutto grazie a chi aveva risposto alla mail di qualche giorno fa con cui chiedevo aiuto per recuperare dati da un file su un CD impossibile da leggere nei byte iniziali.
Ho (quasi...) risolto il problema scrivendo un programma in C che copia un file partendo dai byte finali, creando un file di dimensioni identiche a quelle del file d'origine in cui i byte eventualmente non letti rimangono a NULL.

Visto che il programma può essere di utilità per qualcuno allego il sorgente (neanche 3 Kb).

Per farlo funzionare è necessario modificare il sorgente (impostando i file da copiare ed il num di byte) e compilarlo, lo so, non è bello ma il tempo è quello che è ...

Spero che sia utile per qualcuno!

Ciao a tutti
Paolo Palmieri

P.S. Il programma si chiama Reverse Copy (o rc) ed ovviamente è sotto GPL!


--=====000_Dragon734486160846_=====
Content-Type: application/octet-stream;
      name="rc.c"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
      filename="rc.c"

LyogUmV2ZXJzZSBDb3B5IC0gdmVycy4gMS4wIC0gMjAwMyBQYW9sbyBQYWxtaWVyaSAocGFsbWF3
YXlAZ214Lml0KQogKiBDb3BpYSB1biBmaWxlIHBhcnRlbmRvIGRhaSBieXRlIGZpbmFsaS4KICog
TW9kaWZpY2FyZSBpIHNvcmdlbnRpIHBlciBsJ3Vzby4KICogLSAtIC0gLSAtCiAqIFRoaXMgcHJv
Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k
aWZ5CiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5CiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
ciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiAqIEdOVSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAqIGFsb25nIHdpdGgg
dGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5k
YXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjEx
MS0xMzA3LCBVU0EuCiAqLwoKI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW8uaD4K
I2luY2x1ZGUgPGN1cnNlcy5oPgoKLy9TQ1JJVkVSRSBRVUkgSSBGSUxFIFNPUkdFTlRFIEUgREVT
VElOQVpJT05FIEVEIElMIExPUk8gTlVNIERJIEJZVEUKI2RlZmluZSBGSUxFX1NSQyAiL2hvbWUv
dXRlbnRlL2ZpbGUxIgojZGVmaW5lIEZJTEVfRFNUICIvaG9tZS91dGVudGUvZmlsZTIiCiNkZWZp
bmUgTlVNX0JZVEUgMTIzMDAwCgpGSUxFICpzcmM7CkZJTEUgKmRzdDsKbG9uZyBpbnQgY29udD0w
Owpkb3VibGUgYnVmZmVyWzY0XTsKY2hhciBiZmNvcD0oY2hhcilOVUxMOwpsb25nIGludCBwZXJj
PShOVU1fQllURS8xMCk7Cgp2b2lkIGNyZWFmaWxlKCkKewoJCglmb3IoY29udD0wO2NvbnQ8TlVN
X0JZVEU7Y29udCsrKQlwdXRjKGJmY29wLGRzdCk7Cgp9Cgp2b2lkIGNvcGlhZmlsZSgpCnsKCglm
b3IoY29udD0tNjQqKHNpemVvZihkb3VibGUpKTsoIShmZXJyb3Ioc3JjKSkpJiYoIShmZXJyb3Io
ZHN0KSkpO2NvbnQtPTY0KihzaXplb2YoZG91YmxlKSkpCgl7CgoJaWYoKC1jb250KT5wZXJjKQoJ
ewoJCXByaW50ZigiIyIpOwoJCXBlcmM9cGVyYysoTlVNX0JZVEUvMTApOwoJfQoKCQlpZihmc2Vl
ayhzcmMsIGNvbnQsIFNFRUtfRU5EKSkKCQl7CgoJCQlmb3IoY29udCs9KDY0KihzaXplb2YoZG91
YmxlKSktMSk7KCEoZmVycm9yKHNyYykpKSYmKCEoZmVycm9yKGRzdCkpKTtjb250LS0pCgkJCXsK
CgkJCQlpZihmc2VlayhzcmMsIGNvbnQsIFNFRUtfRU5EKSkKCQkJCXsKCQkJCQkKCQkJCQljb250
PWFicyhjb250KTsKCQkJCQlpZihjb250PU5VTV9CWVRFKSBwcmludGYgKCJcbkZpbGUgY29waWF0
aSBjb3JyZXR0YW1lbnRlIVxuIik7CgkJCQkJZWxzZSBwcmludGYoIlxuRXJyb3JlIG5lbGxhIGNv
cGlhdHVyYSEhISIpOwoJCQkJCXByaW50ZigiQ29waWF0aSAlbGQgYnl0ZVxuIiwgY29udCk7CgkJ
CQkJZmNsb3NlKHNyYyk7CgkJCQkJZmNsb3NlKGRzdCk7CgkJCQkJZXhpdCgxKTsKCgkJCQl9CgoJ
CQkJYmZjb3A9Z2V0YyhzcmMpOwoJCQkJaWYoZnNlZWsoZHN0LCBjb250LCBTRUVLX0VORCkpCgkJ
CQl7CgkJCQkJcHJpbnRmKCJFcnJvcmUgbmVsIHB1bnRhdG9yZSBkZWwgZmlsZSBjb3BpYSFcbiIp
OwoJCQkJCWV4aXQoMSk7CgkJCQl9CgkJCQlwdXRjKGJmY29wLGRzdCk7CgoJCQl9CgoJCQlmY2xv
c2Uoc3JjKTsKCQkJZmNsb3NlKGRzdCk7CgkJCWJyZWFrOwoJCX0KCglpZihmcmVhZChidWZmZXIs
IDY0KihzaXplb2YoZG91YmxlKSksIDEsIHNyYykhPTEpCgl7CgkJcHJpbnRmICgiRXJyb3JlIGRp
IGxldHR1cmEhISFcbiIpOwoJCWV4aXQoMSk7Cgl9CgoJaWYoZnNlZWsoZHN0LCBjb250LCBTRUVL
X0VORCkpCgl7CgkJcHJpbnRmKCJFcnJvcmUgbmVsIHB1bnRhdG9yZSBkZWwgZmlsZSBjb3BpYSFc
biIpOwoJCWV4aXQoMSk7Cgl9CgoJaWYoZndyaXRlKGJ1ZmZlciwgNjQqKHNpemVvZihkb3VibGUp
KSwgMSwgZHN0KSE9MSkKCXsKCQlwcmludGYgKCJFcnJvcmUgZGkgc2NyaXR0dXJhISEhXG4iKTsK
CQlleGl0KDEpOwoJfQoKLy8JREVDT01NRU5UQVJFIFBFUiBERUJVRwovKglpbnQgZGViOwoJZm9y
KGRlYj0wOyBkZWI8NjQ7IGRlYisrKSBwcmludGYoIkNvcGlhdGkgZ2xpIDggYnl0ZTogJWx4XG4i
LCBidWZmZXJbZGViXSk7CglwcmludGYoIkFsbCdpbmRpcml6em86ICclbGQnXG4iLCBjb250KTsq
LwoKCX0KCn0KCmludCBtYWluKCkKewoJCglwcmludGYoIlxuUmV2ZXJzZSBDb3B5IC0gdi4gMS4w
IC0gUGFvbG8gUGFsbWllcmkgMjAwM1xuXG4iKTsKCQoJaWYoKHNyYz1mb3BlbihGSUxFX1NSQywg
InJiIikpPT1OVUxMKQoJewoJCXByaW50ZiAoIkVycm9yZSEhISBJbXBvc3NpYmlsZSBhcHJpcmUg
aWwgZmlsZSBzb3JnZW50ZSFcbiIpOwoJCWV4aXQoMSk7Cgl9CgoJaWYoKGRzdD1mb3BlbihGSUxF
X0RTVCwgIncrYiIpKT09TlVMTCkKCXsKCQlwcmludGYgKCJFcnJvcmUhISEgSW1wb3NzaWJpbGUg
Y3JlYXJlIGlsIGZpbGUgZGVzdGluYXppb25lIVxuIik7CgkJZXhpdCgxKTsKCX0KCgljcmVhZmls
ZSgpOwoJY29waWFmaWxlKCk7Cgp9Cg==

--=====000_Dragon734486160846_=====--