diff options
author | Ferass El Hafidi <vitali64pmemail@protonmail.com> | 2023-01-11 18:32:26 +0100 |
---|---|---|
committer | Ferass El Hafidi <vitali64pmemail@protonmail.com> | 2023-01-11 18:32:26 +0100 |
commit | 3e2adc3fa04a2b3421b2f2d68f6c9155c0329f32 (patch) | |
tree | 378e1342b806454a0cc089c2d7e0ac6bc76e123a | |
parent | 1221595cdd7544627fa051c7bbfa71355163aaf4 (diff) | |
download | fases-3e2adc3fa04a2b3421b2f2d68f6c9155c0329f32.tar.gz fases-3e2adc3fa04a2b3421b2f2d68f6c9155c0329f32.zip |
common/common.c: Just say fases && extras/errno: Refactor (use strerrno and print_usage() )
Signed-off-by: Ferass El Hafidi <vitali64pmemail@protonmail.com>
-rw-r--r-- | common/common.c | 2 | ||||
-rw-r--r-- | extras/Makefile | 2 | ||||
-rw-r--r-- | extras/errno.c | 259 |
3 files changed, 8 insertions, 255 deletions
diff --git a/common/common.c b/common/common.c index f9f8f52..4426f46 100644 --- a/common/common.c +++ b/common/common.c @@ -31,7 +31,7 @@ #include "common.h" int print_usage(char *name, char *desc, char *params, char *version) { - printf("fases core. (%s)\n" + printf("fases (%s)\n" "Usage: %s %s\n" "%s\n", version, name, params, desc); return 1; /* This function is mostly called on error so return 1 */ diff --git a/extras/Makefile b/extras/Makefile index faa6868..eeb8226 100644 --- a/extras/Makefile +++ b/extras/Makefile @@ -38,7 +38,7 @@ $(EXTRA): $(@:=.o) $(OBJ): config .o: - $(CC) $(CFLAGS) $< -o $@ + $(CC) $(CFLAGS) $< ../common/common.c -o $@ .c.o: @[ -e $< ] || echo "$@ is not implemented." ; diff --git a/extras/errno.c b/extras/errno.c index 5fb80f1..6e58792 100644 --- a/extras/errno.c +++ b/extras/errno.c @@ -20,265 +20,18 @@ #include <stdio.h> #include <stdlib.h> -void printUsage() { - printf("fases extra.\n" - "Usage: errno [STRING]\n" - "Give information about error codes.\n"); -} +#define REQ_PRINT_USAGE /* Require print_usage() from ../common/common.h */ +#define DESCRIPTION "Give information about error codes." +#define OPERANDS "code" +#include "../common/common.h" int main(int argc, char *argv[]) { long int error_code = 0; setvbuf(stdout, NULL, _IONBF, 0); if (argc == 2) { error_code = strtol(argv[1], NULL, 10); - printf("errno %ld: ", error_code); - switch (error_code) { - case E2BIG: - printf("Argument list too long."); - break; - case EACCES: - printf("Permission denied."); - break; - case EADDRINUSE: - printf("Address in use."); - break; - case EADDRNOTAVAIL: - printf("Address not available."); - break; - case EAFNOSUPPORT: - printf("Address family not supported."); - break; - case EAGAIN: - printf("Resource unavailable, try again."); - break; - case EALREADY: - printf("Connection already in progress."); - break; - case EBADF: - printf("Bad file descriptor."); - break; - case EBADMSG: - printf("Bad message."); - break; - case EBUSY: - printf("Device or resource busy."); - break; - case ECANCELED: - printf("Operation canceled."); - break; - case ECHILD: - printf("No child processes."); - break; - case ECONNABORTED: - printf("Connection aborted."); - break; - case ECONNREFUSED: - printf("Connection refused."); - break; - case ECONNRESET: - printf("Connection reset."); - break; - case EDEADLK: - printf("Resource deadlock would occur."); - break; - case EDESTADDRREQ: - printf("Destination address required."); - break; - case EDOM: - printf("Mathematics argument out of domain of function."); - break; - case EDQUOT: - printf("Reserved."); - break; - case EEXIST: - printf("File exists."); - break; - case EFAULT: - printf("Bad address."); - break; - case EFBIG: - printf("File too large."); - break; - case EHOSTUNREACH: - printf("Host is unreachable."); - break; - case EIDRM: - printf("Identifier removed."); - break; - case EILSEQ: - printf("Illegal byte sequence."); - break; - case EINPROGRESS: - printf("Operation in progress."); - break; - case EINTR: - printf("Interrupted function."); - break; - case EINVAL: - printf("Invalid argument."); - break; - case EIO: - printf("I/O error."); - break; - case EISCONN: - printf("Socket is connected."); - break; - case EISDIR: - printf("Is a directory."); - break; - case ELOOP: - printf("Too many levels of symbolic links."); - break; - case EMFILE: - printf("File descriptor value too large."); - break; - case EMLINK: - printf("Too many links."); - break; - case EMSGSIZE: - printf("Message too large."); - break; - case EMULTIHOP: - printf("Reserved."); - break; - case ENAMETOOLONG: - printf("Filename too long."); - break; - case ENETDOWN: - printf("Network is down."); - break; - case ENETRESET: - printf("Connection aborted by network."); - break; - case ENETUNREACH: - printf("Network unreachable."); - break; - case ENFILE: - printf("Too many files open in system."); - break; - case ENOBUFS: - printf("No buffer space available."); - break; - case ENODATA: - printf("No message is available on the STREAM head read queue."); - break; - case ENODEV: - printf("No such device."); - break; - case ENOENT: - printf("No such file or directory."); - break; - case ENOEXEC: - printf("Executable file format error."); - break; - case ENOLCK: - printf("No locks available."); - break; - case ENOLINK: - printf("Reserved."); - break; - case ENOMEM: - printf("Not enough space."); - break; - case ENOMSG: - printf("No message of the desired type."); - break; - case ENOPROTOOPT: - printf("Protocol not available."); - break; - case ENOSPC: - printf("No space left on device."); - break; - case ENOSR: - printf("No STREAM resources."); - break; - case ENOSTR: - printf("Not a STREAM."); - break; - case ENOSYS: - printf("Functionality not supported."); - break; - case ENOTCONN: - printf("The socket is not connected."); - break; - case ENOTDIR: - printf("Not a directory or a symbolic link to a directory."); - break; - case ENOTEMPTY: - printf("Directory not empty."); - break; - case ENOTRECOVERABLE: - printf("State not recoverable."); - break; - case ENOTSOCK: - printf("Not a socket."); - break; - case ENOTSUP: - printf("Not supported (may be the same value as EOPNOTSUPP)."); - break; - case ENOTTY: - printf("Inappropriate I/O control operation."); - break; - case ENXIO: - printf("No such device or address."); - break; - case EOVERFLOW: - printf("Value too large to be stored in data type."); - break; - case EOWNERDEAD: - printf("Previous owner died."); - break; - case EPERM: - printf("Operation not permitted."); - break; - case EPIPE: - printf("Broken pipe."); - break; - case EPROTO: - printf("Protocol error."); - break; - case EPROTONOSUPPORT: - printf("Protocol not supported."); - break; - case EPROTOTYPE: - printf("Protocol wrong type for socket."); - break; - case ERANGE: - printf("Result too large."); - break; - case EROFS: - printf("Read-only file system."); - break; - case ESPIPE: - printf("Invalid seek."); - break; - case ESRCH: - printf("No such process."); - break; - case ESTALE: - printf("Reserved."); - break; - case ETIME: - printf("Stream ioctl() timeout."); - break; - case ETIMEDOUT: - printf("Connection timed out."); - break; - case ETXTBSY: - printf("Text file busy."); - break; - case EXDEV: - printf("Cross-device link."); - break; - case 0: - printf("No error occured."); - break; - default: - printf("Unknown."); - break; - } - printf("\n"); + printf("errno %ld: %s\n", error_code, strerror(error_code)); } - + else return print_usage(argv[0], DESCRIPTION, OPERANDS, VERSION); return 0; } |