This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
[PATCH 6/9] Phoenix-RTOS: Implement daemon() function.
- From: Jakub Sejdak <jakub dot sejdak at phoesys dot com>
- To: newlib at sourceware dot org
- Cc: Kuba Sejdak <jakub dot sejdak at phoesys dot com>
- Date: Fri, 24 Jun 2016 14:14:52 +0200
- Subject: [PATCH 6/9] Phoenix-RTOS: Implement daemon() function.
- Authentication-results: sourceware.org; auth=none
- References: <1466770495-3213-1-git-send-email-jakub dot sejdak at phoesys dot com>
From: Kuba Sejdak <jakub.sejdak@phoesys.com>
---
newlib/libc/sys/phoenix/fork.c | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/newlib/libc/sys/phoenix/fork.c b/newlib/libc/sys/phoenix/fork.c
index 696ce08..7e8d591 100644
--- a/newlib/libc/sys/phoenix/fork.c
+++ b/newlib/libc/sys/phoenix/fork.c
@@ -25,7 +25,10 @@
#include "syscall.h"
#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
#include <sys/types.h>
+#include <unistd.h>
pid_t fork()
{
@@ -42,3 +45,26 @@ pid_t vfork()
{
return fork();
}
+
+int daemon(int nochdir, int noclose)
+{
+ switch(fork()) {
+ case -1:
+ return -1;
+ case 0:
+ break;
+ default:
+ exit(0);
+ }
+
+ if (setsid() == -1)
+ return -1;
+
+ if (nochdir == 0)
+ chdir("/");
+
+ if (noclose == 0)
+ freopen("/dev/null", "a+", stdout);
+
+ return 0;
+}
--
2.7.4