#include #include #include #include #include #include #include extern "C" { int fclose(FILE*) { NOT_IMPLEMENTED("fclose"); } int fflush(FILE*) { NOT_IMPLEMENTED("fflush"); } FILE* fopen(const char*, const char*) { NOT_IMPLEMENTED("fopen"); } int fprintf(FILE*, const char* format, ...) // FIXME: Make fprintf print to the selected file instead of stdout. { va_list ap; va_start(ap, format); int written = vprintf(format, ap); va_end(ap); return written; } size_t fread(void*, size_t, size_t, FILE*) { NOT_IMPLEMENTED("fread"); } int fseek(FILE*, long, int) { NOT_IMPLEMENTED("fseek"); } long ftell(FILE*) { NOT_IMPLEMENTED("ftell"); } size_t fwrite(const void*, size_t, size_t, FILE*) { NOT_IMPLEMENTED("fwrite"); } void setbuf(FILE*, char*) { NOT_IMPLEMENTED("setbuf"); } int vfprintf(FILE*, const char* format, va_list ap) // FIXME: Make vfprintf print to the selected file instead of stdout. { return vprintf(format, ap); } int puts(const char* s) { long nwritten = syscall(SYS_write, s, strlen(s)); if (nwritten < 0) return -1; nwritten += syscall(SYS_write, "\n", 1); return (int)nwritten; } int snprintf(char* str, size_t max, const char* format, ...) { va_list ap; va_start(ap, format); int written = vsnprintf(str, max, format, ap); va_end(ap); return written; } int sprintf(char* str, const char* format, ...) { va_list ap; va_start(ap, format); int written = vsprintf(str, format, ap); va_end(ap); return written; } int printf(const char* format, ...) { va_list ap; va_start(ap, format); int written = vprintf(format, ap); va_end(ap); return written; } void perror(const char* s) // FIXME: Print to stderr, whenever we have an stderr. { if (s && *s) { printf("%s: ", s); } printf("%s\n", strerror(errno)); } }