(CFACT-47) Retry after read failure, as suggested in POSIX documentation...

Running cfacter in Xcode's debugger would throw an exception because the "read" call failed. System calls will fail when a signal interrupts them, and the recommended handling is to retry the system call, so that's what I've done here.