mirror of
https://gitlab.com/sortix/sortix.git
synced 2023-02-13 20:55:38 -05:00
Added fseterr(3).
This commit is contained in:
parent
366cc2549a
commit
d564574cd0
4 changed files with 14 additions and 0 deletions
|
@ -19,6 +19,7 @@ typedef struct _FILE
|
|||
size_t (*write_func)(const void* ptr, size_t size, size_t nmemb, void* user);
|
||||
int (*seek_func)(void* user, off_t offset, int whence);
|
||||
off_t (*tell_func)(void* user);
|
||||
void (*seterr_func)(void* user);
|
||||
void (*clearerr_func)(void* user);
|
||||
int (*eof_func)(void* user);
|
||||
int (*error_func)(void* user);
|
||||
|
|
|
@ -87,6 +87,12 @@ static off_t fdio_tell(void* user)
|
|||
return lseek(fdio->fd, 0, SEEK_CUR);
|
||||
}
|
||||
|
||||
static void fdio_seterr(void* user)
|
||||
{
|
||||
fdio_t* fdio = (fdio_t*) user;
|
||||
fdio->flags |= FDIO_ERROR;
|
||||
}
|
||||
|
||||
static void fdio_clearerr(void* user)
|
||||
{
|
||||
fdio_t* fdio = (fdio_t*) user;
|
||||
|
@ -143,6 +149,7 @@ int fdio_install(FILE* fp, const char* mode, int fd)
|
|||
fp->write_func = fdio_write;
|
||||
fp->seek_func = fdio_seek;
|
||||
fp->tell_func = fdio_tell;
|
||||
fp->seterr_func = fdio_seterr;
|
||||
fp->clearerr_func = fdio_clearerr;
|
||||
fp->eof_func = fdio_eof;
|
||||
fp->error_func = fdio_error;
|
||||
|
|
|
@ -104,6 +104,11 @@ int fseek(FILE* fp, long offset, int whence)
|
|||
return fseeko(fp, offset, whence);
|
||||
}
|
||||
|
||||
void fseterr(FILE* fp)
|
||||
{
|
||||
if ( fp->seterr_func ) { fp->seterr_func(fp->user); }
|
||||
}
|
||||
|
||||
void clearerr(FILE* fp)
|
||||
{
|
||||
if ( fp->clearerr_func ) { fp->clearerr_func(fp->user); }
|
||||
|
|
|
@ -159,6 +159,7 @@ extern char* tempnam(const char* dir, const char* pfx);
|
|||
#define fpending __fpending
|
||||
#define flushlbf _flushlbf
|
||||
#define fsetlocking __fsetlocking
|
||||
void fseterr(FILE* fp);
|
||||
void fregister(FILE* fp);
|
||||
void funregister(FILE* fp);
|
||||
FILE* fnewfile(void);
|
||||
|
|
Loading…
Add table
Reference in a new issue