#include #include #include #include #include #include ssize_t write_all(int fd, char *buf, size_t count) { ssize_t ret; size_t cnt; for(cnt = count; cnt > 0; buf += ret, cnt -= ret) { ret = write(fd, buf, count); if(ret == -1) { // Datei kein Socket und nicht O_NONBLOCK, also // sollte™ kein EAGAIN kommen perror("write"); exit(1); } // ret kann 0 sein, das heißt 0 Bytes wurden geschrieben } return count; } int main() { signed int fd_in = open("Dump_Esc.xml", O_RDONLY); if(fd_in == -1) { perror("open"); exit(1); } signed int fd_out = creat("Dump_Esc_0.xml", 0640); if(fd_in == -1) { perror("creat"); exit(1); } const size_t SIZ = 1024; char buf[SIZ]; for(;;) { ssize_t ret = read(fd_in, buf, SIZ); if(!ret) break; for(size_t i=0; i