@@ -0,0 +1,17 @@
+#ifndef __GBLIBC_SIGNAL_H_
+#define __GBLIBC_SIGNAL_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define SIGINT 2
+#define SIGQUIT 3
+#define SIGPIPE 13
+#define SIGSTOP 19
+}
@@ -41,6 +41,8 @@ char* stpncpy(char* dst, const char* src, size_t n);
char* strdup(const char* str);
char* strndup(const char* str, size_t n);
+char* strsignal(int sig);
#ifdef __cplusplus
}
#endif
@@ -1,5 +1,6 @@
#include <ctype.h>
#include <errno.h>
+#include <signal.h>
#include <stdint.h>
#include <stdlib.h>
@@ -274,3 +275,19 @@ char* strdup(const char* str)
{
return strndup(str, __SIZE_MAX__);
+char* strsignal(int sig)
+{
+ switch (sig) {
+ default:
+ return "Unknown signal";
+ case SIGINT:
+ return "Interrupt";
+ case SIGQUIT:
+ return "Quit";
+ case SIGSTOP:
+ return "Stopped (signal)";
+ case SIGPIPE:
+ return "Broken pipe";
+ }