int fputc(int c, FILE *fd) { unsigned char ch = c; if (filedesc_write(fd, &ch, 1, 1) < 1) return EOF; return ch; }
size_t fwrite(const void *buf, size_t eltsize, size_t count, FILE *fd) { ssize_t actual = filedesc_write(fd, buf, eltsize, count); #if LAB >= 9 // Make sure console output gets flushed every one if (isatty(fd - files->fd) && memchr(buf, '\n', eltsize*count)) fflush(fd); #endif return actual >= 0 ? actual : 0; // no error indication }
ssize_t write(int fn, const void *buf, size_t nbytes) { return filedesc_write(&files->fd[fn], buf, 1, nbytes); }