2023-03-02 21:10:44 +02:00
|
|
|
#include <errno.h>
|
|
|
|
#include <string.h>
|
|
|
|
|
|
|
|
int errno = 0;
|
|
|
|
|
|
|
|
char* strerror(int error)
|
|
|
|
{
|
2023-03-02 22:13:08 +02:00
|
|
|
static char buffer[100];
|
|
|
|
buffer[0] = 0;
|
|
|
|
|
2023-03-02 21:10:44 +02:00
|
|
|
switch (error)
|
|
|
|
{
|
|
|
|
case ENOMEM:
|
2023-03-02 22:13:08 +02:00
|
|
|
strcpy(buffer, "Cannot allocate memory");
|
|
|
|
break;
|
2023-03-02 21:10:44 +02:00
|
|
|
case EINVAL:
|
2023-03-02 22:13:08 +02:00
|
|
|
strcpy(buffer, "Invalid argument");
|
|
|
|
break;
|
2023-03-02 21:10:44 +02:00
|
|
|
case EISDIR:
|
2023-03-02 22:13:08 +02:00
|
|
|
strcpy(buffer, "Is a directory");
|
|
|
|
break;
|
2023-03-02 21:10:44 +02:00
|
|
|
case ENOTDIR:
|
2023-03-02 22:13:08 +02:00
|
|
|
strcpy(buffer, "Not a directory");
|
|
|
|
break;
|
2023-03-02 21:10:44 +02:00
|
|
|
case ENOENT:
|
2023-03-02 22:13:08 +02:00
|
|
|
strcpy(buffer, "No such file or directory");
|
|
|
|
break;
|
2023-03-02 21:10:44 +02:00
|
|
|
case EIO:
|
2023-03-02 22:13:08 +02:00
|
|
|
strcpy(buffer, "Input/output error");
|
2023-03-02 21:10:44 +02:00
|
|
|
break;
|
2023-03-16 16:03:51 +02:00
|
|
|
case ENOTSUP:
|
|
|
|
strcpy(buffer, "Operation not supported");
|
|
|
|
break;
|
2023-03-16 16:22:11 +02:00
|
|
|
case EBADF:
|
|
|
|
strcpy(buffer, "Bad file descriptor");
|
|
|
|
break;
|
2023-03-19 04:17:39 +02:00
|
|
|
case EEXISTS:
|
|
|
|
strcpy(buffer, "File exists");
|
|
|
|
break;
|
2023-03-19 05:43:40 +02:00
|
|
|
case ENOTEMPTY:
|
|
|
|
strcpy(buffer, "Directory not empty");
|
|
|
|
break;
|
2023-03-23 14:48:42 +02:00
|
|
|
case ENAMETOOLONG:
|
|
|
|
strcpy(buffer, "Filename too long");
|
|
|
|
break;
|
2023-03-02 22:13:08 +02:00
|
|
|
default:
|
|
|
|
{
|
|
|
|
// FIXME: sprintf
|
|
|
|
//sprintf(buffer, "Unknown error %d", error);
|
|
|
|
strcpy(buffer, "Unknown error");
|
|
|
|
errno = EINVAL;
|
|
|
|
break;
|
|
|
|
}
|
2023-03-02 21:10:44 +02:00
|
|
|
}
|
|
|
|
|
2023-03-02 22:13:08 +02:00
|
|
|
return buffer;
|
2023-03-02 21:10:44 +02:00
|
|
|
}
|