libc: Add dummy getcwd()
This commit is contained in:
parent
e7d41fa6dc
commit
0dec5f7bad
@ -16,5 +16,6 @@
|
|||||||
#define EMFILE 24
|
#define EMFILE 24
|
||||||
#define ENOTTY 25
|
#define ENOTTY 25
|
||||||
#define ENOSPC 28
|
#define ENOSPC 28
|
||||||
|
#define ERANGE 36
|
||||||
#define ENOSYS 38
|
#define ENOSYS 38
|
||||||
#define ENOTSUP 95
|
#define ENOTSUP 95
|
@ -21,6 +21,7 @@ extern int errno;
|
|||||||
#define ENOTTY 25 // Inappropriate ioctl for device
|
#define ENOTTY 25 // Inappropriate ioctl for device
|
||||||
#define ENOSPC 28 // No space left on device
|
#define ENOSPC 28 // No space left on device
|
||||||
#define EPIPE 32 // Broken pipe. Not implemented.
|
#define EPIPE 32 // Broken pipe. Not implemented.
|
||||||
|
#define ERANGE 34 // Numerical result out of range
|
||||||
#define ENOSYS 38 // Function not implemented
|
#define ENOSYS 38 // Function not implemented
|
||||||
#define ENOTSUP 95 // Operation not supported
|
#define ENOTSUP 95 // Operation not supported
|
||||||
|
|
||||||
|
@ -69,6 +69,9 @@ extern "C"
|
|||||||
/* Checks if the file descriptor fd refers to a terminal. */
|
/* Checks if the file descriptor fd refers to a terminal. */
|
||||||
int isatty(int fd);
|
int isatty(int fd);
|
||||||
|
|
||||||
|
/* Writes the current process's current working directory to buf. */
|
||||||
|
char* getcwd(char* buf, size_t size);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -274,6 +274,7 @@ extern "C"
|
|||||||
case ENOTTY: return "Inappropriate ioctl for device";
|
case ENOTTY: return "Inappropriate ioctl for device";
|
||||||
case ENOSPC: return "No space left on device";
|
case ENOSPC: return "No space left on device";
|
||||||
case EPIPE: return "Broken pipe";
|
case EPIPE: return "Broken pipe";
|
||||||
|
case ERANGE: return "Numerical result out of range";
|
||||||
case ENOSYS: return "Function not implemented";
|
case ENOSYS: return "Function not implemented";
|
||||||
case ENOTSUP: return "Operation not supported";
|
case ENOTSUP: return "Operation not supported";
|
||||||
case 0: return "Success";
|
case 0: return "Success";
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
|
#include <errno.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <luna.h>
|
#include <luna.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
#include <sys/syscall.h>
|
#include <sys/syscall.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
@ -81,4 +84,16 @@ extern "C"
|
|||||||
if (result < 0) return 0;
|
if (result < 0) return 0;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char* getcwd(char* buf, size_t size)
|
||||||
|
{
|
||||||
|
const char* dummy_cwd = "/"; // FIXME: Actually retrieve the current working directory from the kernel.
|
||||||
|
if (size < 2)
|
||||||
|
{
|
||||||
|
errno = ERANGE;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
if (!buf) { buf = (char*)malloc(size); }
|
||||||
|
strlcpy(buf, dummy_cwd, 2);
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user