diff options
Diffstat (limited to 'mdk-stage1/dietlibc/libstdio/fprintf.c')
-rw-r--r-- | mdk-stage1/dietlibc/libstdio/fprintf.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/libstdio/fprintf.c b/mdk-stage1/dietlibc/libstdio/fprintf.c new file mode 100644 index 000000000..237fd1e51 --- /dev/null +++ b/mdk-stage1/dietlibc/libstdio/fprintf.c @@ -0,0 +1,23 @@ +#include <stdarg.h> +#include <linux/types.h> +#include <stdio.h> +#include <stdlib.h> + +extern int vsnprintf (char *str,size_t size,const char *format, va_list arg_ptr); + +int fprintf(FILE *f,const char *format,...) { + int n; + char *printf_buf; +/* char printf_buf[1024]; */ + va_list arg_ptr; + va_start(arg_ptr, format); + n=vsnprintf(0,1000000,format,arg_ptr); +/* write(1,printf_buf,strlen(printf_buf)); */ + va_end (arg_ptr); + va_start (arg_ptr, format); + printf_buf=alloca(n+2); + n=vsnprintf(printf_buf,n+1,format,arg_ptr); + va_end (arg_ptr); + fwrite(printf_buf,n,1,f); + return n; +} |