25 lines
403 B
C
25 lines
403 B
C
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
#include "fileutil.h"
|
||
|
|
||
|
FILE *fdopen(int fd, char const *mode)
|
||
|
{
|
||
|
FILE *fp = calloc(1, sizeof *fp);
|
||
|
if(!fp) goto err;
|
||
|
|
||
|
int flags = __fp_parse_mode(mode, fp);
|
||
|
if(flags < 0) goto err;
|
||
|
|
||
|
__fp_open(fp, fd, true);
|
||
|
|
||
|
/* TODO: fdopen(): Seek to the current file offset of the fd */
|
||
|
|
||
|
return fp;
|
||
|
|
||
|
err:
|
||
|
if(fp && fp->bufowned)
|
||
|
free(fp->buf);
|
||
|
free(fp);
|
||
|
return NULL;
|
||
|
}
|