mirror of
https://github.com/Fennix-Project/Userspace.git
synced 2025-05-28 15:34:26 +00:00
If filename is invalid, fopen should return NULL
This commit is contained in:
parent
f4ca629a8f
commit
87c7e0f286
@ -9,8 +9,12 @@ FILE *stderr;
|
|||||||
|
|
||||||
FILE *fopen(const char *filename, const char *mode)
|
FILE *fopen(const char *filename, const char *mode)
|
||||||
{
|
{
|
||||||
|
void *KPrivate = (void *)syscall2(_FileOpen, (uint64_t)filename, (uint64_t)mode);
|
||||||
|
if (IsSyscallError(KPrivate))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
FILE *FilePtr = malloc(sizeof(FILE));
|
FILE *FilePtr = malloc(sizeof(FILE));
|
||||||
FilePtr->KernelPrivate = (void *)syscall2(_FileOpen, (uint64_t)filename, (uint64_t)mode);
|
FilePtr->KernelPrivate = KPrivate;
|
||||||
return FilePtr;
|
return FilePtr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -24,6 +28,13 @@ size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)
|
|||||||
return syscall4(_FileWrite, (uint64_t)stream->KernelPrivate, stream->offset, (uint64_t)ptr, size * nmemb);
|
return syscall4(_FileWrite, (uint64_t)stream->KernelPrivate, stream->offset, (uint64_t)ptr, size * nmemb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int fclose(FILE *fp)
|
||||||
|
{
|
||||||
|
void *KP = fp->KernelPrivate;
|
||||||
|
free(fp);
|
||||||
|
return syscall1(_FileClose, (uint64_t)KP);
|
||||||
|
}
|
||||||
|
|
||||||
int fseek(FILE *stream, long offset, int whence)
|
int fseek(FILE *stream, long offset, int whence)
|
||||||
{
|
{
|
||||||
switch (whence)
|
switch (whence)
|
||||||
@ -47,13 +58,6 @@ long ftell(FILE *stream)
|
|||||||
return stream->offset;
|
return stream->offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
int fclose(FILE *fp)
|
|
||||||
{
|
|
||||||
void *KP = fp->KernelPrivate;
|
|
||||||
free(fp);
|
|
||||||
return syscall1(_FileClose, (uint64_t)KP);
|
|
||||||
}
|
|
||||||
|
|
||||||
int fflush(FILE *stream)
|
int fflush(FILE *stream)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user