Index: uspace/lib/libc/generic/vfs.c
===================================================================
--- uspace/lib/libc/generic/vfs.c	(revision 67f63c47e41903200a85cbc1871d6437a812e285)
+++ uspace/lib/libc/generic/vfs.c	(revision 0ee4322fd8ff41e424fb8a9d65e8b6d189d22883)
@@ -95,5 +95,5 @@
 
 
-int open(const char *name, int oflag, ...)
+int open(const char *path, int oflag, ...)
 {
 	int res;
@@ -113,5 +113,5 @@
 	}
 	req = async_send_2(vfs_phone, VFS_OPEN, oflag, 0, &answer);
-	rc = ipc_data_write_start(vfs_phone, name, strlen(name));
+	rc = ipc_data_write_start(vfs_phone, path, strlen(path));
 	if (rc != EOK) {
 		async_wait_for(req, NULL);
@@ -215,4 +215,25 @@
 }
 
+int ftruncate(int fildes, off_t length)
+{
+	int res;
+	ipcarg_t rc;
+	
+	futex_down(&vfs_phone_futex);
+	async_serialize_start();
+	if (vfs_phone < 0) {
+		res = vfs_connect();
+		if (res < 0) {
+			async_serialize_end();
+			futex_up(&vfs_phone_futex);
+			return res;
+		}
+	}
+	rc = async_req_2_0(vfs_phone, VFS_TRUNCATE, fildes, length);
+	async_serialize_end();
+	futex_up(&vfs_phone_futex);
+	return (int) rc;
+}
+
 /** @}
  */
Index: uspace/lib/libc/include/unistd.h
===================================================================
--- uspace/lib/libc/include/unistd.h	(revision 67f63c47e41903200a85cbc1871d6437a812e285)
+++ uspace/lib/libc/include/unistd.h	(revision 0ee4322fd8ff41e424fb8a9d65e8b6d189d22883)
@@ -46,7 +46,8 @@
 #define SEEK_END	2
 
-extern ssize_t write(int fd, const void * buf, size_t count);
-extern ssize_t read(int fd, void * buf, size_t count);
+extern ssize_t write(int, const void *, size_t);
+extern ssize_t read(int, void *, size_t);
 extern off_t lseek(int, off_t, int);
+extern int ftruncate(int, off_t);
 
 extern void _exit(int status);
