diff --git a/libc/Makefile b/libc/Makefile
index b891d061..7aafaae3 100644
--- a/libc/Makefile
+++ b/libc/Makefile
@@ -582,6 +582,7 @@ unistd/fchown.o \
unistd/fchrootat.o \
unistd/fchroot.o \
unistd/fork.o \
+unistd/fpathconf.o \
unistd/fsync.o \
unistd/ftruncate.o \
unistd/getcwd.o \
diff --git a/libc/include/unistd.h b/libc/include/unistd.h
index 825e287e..1f654ca3 100644
--- a/libc/include/unistd.h
+++ b/libc/include/unistd.h
@@ -421,7 +421,7 @@ int execv(const char*, char* const []);
int execve(const char*, char* const [], char* const []);
int execvp(const char*, char* const []);
pid_t fork(void);
-/* TODO: long fpathconf(int, int); */
+long fpathconf(int, int);
int fsync(int);
char* getcwd(char*, size_t);
gid_t getegid(void);
diff --git a/libc/unistd/fpathconf.cpp b/libc/unistd/fpathconf.cpp
new file mode 100644
index 00000000..e5490f49
--- /dev/null
+++ b/libc/unistd/fpathconf.cpp
@@ -0,0 +1,39 @@
+/*******************************************************************************
+
+ Copyright(C) Jonas 'Sortie' Termansen 2014.
+
+ This file is part of the Sortix C Library.
+
+ The Sortix C Library is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or (at your
+ option) any later version.
+
+ The Sortix C Library is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with the Sortix C Library. If not, see .
+
+ unistd/fpathconf.cpp
+ Get configurable pathname variables.
+
+*******************************************************************************/
+
+#include
+#include
+#include
+
+extern "C" long fpathconf(int fd, int name)
+{
+ switch ( name )
+ {
+ case _PC_PATH_MAX: return -1; // Unbounded
+ default:
+ fprintf(stderr, "%s:%u warning: %s(%i, %i) is unsupported\n",
+ __FILE__, __LINE__, __func__, fd, name);
+ return errno = EINVAL, -1;
+ }
+}