[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[tyndur-devel] [PATCH] libc: POSIX: symlink()



+ libc: POSIX: symlink()

Signed-off-by: Kevin Wolf <kevin@xxxxxxxxxx>
---
 src/modules/include/unistd.h |   10 ++++++++++
 src/modules/lib/posix/link.c |   13 +++++++++++++
 2 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/src/modules/include/unistd.h b/src/modules/include/unistd.h
index 24b06b9..cc62037 100644
--- a/src/modules/include/unistd.h
+++ b/src/modules/include/unistd.h
@@ -141,6 +141,16 @@ unsigned int sleep(unsigned int seconds);
 /// Datei umbenennen oder verschieben
 int rename(const char* path_old, const char* path_new);
 
+/**
+ * Einen symbolischen Link anlegen
+ *
+ * @param oldpath Ziel des Links
+ * @param newpath Hier wird der Link erstellt
+ *
+ * @return 0 bei Erfolg; im Fehlerfall -1 und errno wird gesetzt
+ */
+int symlink(const char* oldpath, const char* newpath);
+
 /// Gibt die aktuelle Benutzer-ID zurueck
 uid_t getuid(void);
 
diff --git a/src/modules/lib/posix/link.c b/src/modules/lib/posix/link.c
index 76b30e7..d11439a 100644
--- a/src/modules/lib/posix/link.c
+++ b/src/modules/lib/posix/link.c
@@ -29,6 +29,7 @@
 #include <unistd.h>
 #include <errno.h>
 #include <stdio.h>
+#include <io.h>
 
 /**
  * Einen Hardlink erstellen.
@@ -45,6 +46,18 @@ int link(const char* oldpath, const char* newpath)
     return -1;
 }
 
+/**
+ * Einen symbolischen Link anlegen
+ *
+ * @param oldpath Ziel des Links
+ * @param newpath Hier wird der Link erstellt
+ *
+ * @return 0 bei Erfolg; im Fehlerfall -1 und errno wird gesetzt
+ */
+int symlink(const char* oldpath, const char* newpath)
+{
+    return io_create_link(oldpath, newpath, 0);
+}
 
 /**
  * Liest den Zielpfad eines symbolischen Links aus.
-- 
1.6.0.2