1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 18:57:34 +00:00

LibC: Implemented getc_unlocked, stubbed flockfile

Implemented getc_unlocked and stubbed out flockfile() and funlockfile().
This commit is contained in:
Brandon Scott 2019-11-16 04:39:36 -06:00 committed by Andreas Kling
parent bda36853c9
commit 3069988a75
2 changed files with 24 additions and 4 deletions

View file

@ -140,12 +140,17 @@ int getc(FILE* stream)
return fgetc(stream); return fgetc(stream);
} }
int getc_unlocked(FILE* stream)
{
return fgetc(stream);
}
int getchar() int getchar()
{ {
return getc(stdin); return getc(stdin);
} }
ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream) ssize_t getdelim(char** lineptr, size_t* n, int delim, FILE* stream)
{ {
char *ptr, *eptr; char *ptr, *eptr;
if (*lineptr == nullptr || *n == 0) { if (*lineptr == nullptr || *n == 0) {
@ -170,7 +175,7 @@ ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream)
return ptr - *lineptr; return ptr - *lineptr;
} }
if (ptr + 2 >= eptr) { if (ptr + 2 >= eptr) {
char *nbuf; char* nbuf;
size_t nbuf_sz = *n * 2; size_t nbuf_sz = *n * 2;
ssize_t d = ptr - *lineptr; ssize_t d = ptr - *lineptr;
if ((nbuf = static_cast<char*>(realloc(*lineptr, nbuf_sz))) == nullptr) { if ((nbuf = static_cast<char*>(realloc(*lineptr, nbuf_sz))) == nullptr) {
@ -184,7 +189,7 @@ ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream)
} }
} }
ssize_t getline(char **lineptr, size_t *n, FILE *stream) ssize_t getline(char** lineptr, size_t* n, FILE* stream)
{ {
return getdelim(lineptr, n, '\n', stream); return getdelim(lineptr, n, '\n', stream);
} }
@ -616,6 +621,18 @@ int vfscanf(FILE* stream, const char* fmt, va_list ap)
return vsscanf(buffer, fmt, ap); return vsscanf(buffer, fmt, ap);
} }
void flockfile(FILE* filehandle)
{
(void)filehandle;
dbgprintf("FIXME: Implement flockfile()\n");
}
void funlockfile(FILE* filehandle)
{
(void)filehandle;
dbgprintf("FIXME: Implement funlockfile()\n");
}
FILE* tmpfile() FILE* tmpfile()
{ {
dbgprintf("FIXME: Implement tmpfile()\n"); dbgprintf("FIXME: Implement tmpfile()\n");

View file

@ -56,6 +56,7 @@ int fputc(int ch, FILE*);
int fileno(FILE*); int fileno(FILE*);
int fgetc(FILE*); int fgetc(FILE*);
int getc(FILE*); int getc(FILE*);
int getc_unlocked(FILE* stream);
int getchar(); int getchar();
ssize_t getdelim(char**, size_t*, int, FILE*); ssize_t getdelim(char**, size_t*, int, FILE*);
ssize_t getline(char**, size_t*, FILE*); ssize_t getline(char**, size_t*, FILE*);
@ -64,6 +65,8 @@ int remove(const char* pathname);
FILE* fdopen(int fd, const char* mode); FILE* fdopen(int fd, const char* mode);
FILE* fopen(const char* pathname, const char* mode); FILE* fopen(const char* pathname, const char* mode);
FILE* freopen(const char* pathname, const char* mode, FILE*); FILE* freopen(const char* pathname, const char* mode, FILE*);
void flockfile(FILE* filehandle);
void funlockfile(FILE* filehandle);
int fclose(FILE*); int fclose(FILE*);
void rewind(FILE*); void rewind(FILE*);
void clearerr(FILE*); void clearerr(FILE*);