mirror of
https://github.com/EnderIce2/Fennix.git
synced 2025-05-30 08:17:58 +00:00
userspace/libc: implement vfprintf function
Signed-off-by: EnderIce2 <enderice2@protonmail.com>
This commit is contained in:
parent
b05868d120
commit
8f7938a1e5
@ -141,7 +141,7 @@ extern "C"
|
|||||||
char *tmpnam(char *);
|
char *tmpnam(char *);
|
||||||
int ungetc(int, FILE *);
|
int ungetc(int, FILE *);
|
||||||
int vdprintf(int, const char *restrict, va_list);
|
int vdprintf(int, const char *restrict, va_list);
|
||||||
int vfprintf(FILE *restrict, const char *restrict, va_list);
|
int vfprintf(FILE *restrict stream, const char *restrict format, va_list ap);
|
||||||
int vfscanf(FILE *restrict, const char *restrict, va_list);
|
int vfscanf(FILE *restrict, const char *restrict, va_list);
|
||||||
int vprintf(const char *restrict, va_list);
|
int vprintf(const char *restrict, va_list);
|
||||||
int vscanf(const char *restrict, va_list);
|
int vscanf(const char *restrict, va_list);
|
||||||
|
@ -412,7 +412,32 @@ export FILE *tmpfile(void);
|
|||||||
export char *tmpnam(char *);
|
export char *tmpnam(char *);
|
||||||
export int ungetc(int, FILE *);
|
export int ungetc(int, FILE *);
|
||||||
export int vdprintf(int, const char *restrict, va_list);
|
export int vdprintf(int, const char *restrict, va_list);
|
||||||
export int vfprintf(FILE *restrict, const char *restrict, va_list);
|
|
||||||
|
export int vfprintf(FILE *restrict stream, const char *restrict format, va_list ap)
|
||||||
|
{
|
||||||
|
if (!stream || !(stream->flags & _i_WRITE))
|
||||||
|
return EOF;
|
||||||
|
|
||||||
|
int ret = vprintf_(format, ap);
|
||||||
|
if (ret < 0)
|
||||||
|
{
|
||||||
|
stream->error = 1;
|
||||||
|
return EOF;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *p = format;
|
||||||
|
while (*p)
|
||||||
|
{
|
||||||
|
if (fputc(*p++, stream) == EOF)
|
||||||
|
{
|
||||||
|
stream->error = 1;
|
||||||
|
return EOF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
export int vfscanf(FILE *restrict, const char *restrict, va_list);
|
export int vfscanf(FILE *restrict, const char *restrict, va_list);
|
||||||
export int vprintf(const char *restrict, va_list);
|
export int vprintf(const char *restrict, va_list);
|
||||||
export int vscanf(const char *restrict, va_list);
|
export int vscanf(const char *restrict, va_list);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user