Partial_write
et retourner à la fois l'erreur
et le nombre exact d'octets écrits (lorsque celui-ci est non nul, sinon
on reporte l'erreur comme d'habitude).
exception Partial_write of exn * int let mon_write desc buf offset len = let rec write offset left = if left > 0 then let n = begin try single_write desc buf offset left with | Unix_error (_, _, _) as exn when left < len -> raise (Partial_write (exn, len -left)) end in write (offset + n) (left -n) else len in write offset len;; |