<div dir="ltr">by the way: dd has this option that says "in case of read error, do not stop, continue". it's recomended to use it altho i never actually gotten why.<div>my point is: how to handle any kind of read/write exception with my clone? i used withBinaryFile which promised to close my handles no matter what, which is great, but i don't feel much secured since i don't know how my program would handle a bumpy ride or even if it would tell me anything... i don't even know what would happen if it were cut in the middle, etc.</div><div><br></div><div>on this general topic, by the way, are there good resources for system-programming with haskell? is it even manageable to do so rather than use c-like (go, c++, etc) languages?</div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-06-27 21:42 GMT+02:00 Silent Leaf <span dir="ltr"><<a href="mailto:silent.leaf0@gmail.com" target="_blank">silent.leaf0@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi,<div><br></div><div>i created a small clone of dd in haskell. I made it so it only copies block by block and only if there's any difference between each pair of blocks from each file. the idea is to use this dd clone as backup system, especially since my partitions are nearly full, so no real loss in copying the whole things.</div><div><br></div><div>I'm wondering if there's any way to check if my program never ever writes onto the target unless actually needed. obviously by reading the code i'd say it does what i want, but we do make test cases rather than rely on what we think the code does.</div><div><br></div><div>i can't run it with a target file that would be made read-only in the filesys (and hope for an error for trying to write on it) since obviously i need to open it in read-write right from the beginning, in case of actual need of writing (as apparently i can't have two handles on the same file... although maybe there's a way to change the mode of opening on the run? did not find it in System.IO nor in Hoogle or Hayoo)</div><div><br></div><div>so if anyone has an idea, in or outside of haskell, that would be great!</div></div>
</blockquote></div><br></div>