1/* 2 * Copyright 2009, Axel Dörfler, axeld@pinc-software.de. 3 * Distributed under the terms of the MIT License. 4 */ 5 6 7#include <stdlib.h> 8 9#include <errno.h> 10#include <sys/stat.h> 11 12#include <errno_private.h> 13#include <syscalls.h> 14 15 16char* 17realpath(const char* path, char* resolved) 18{ 19 status_t status = _kern_normalize_path(path, true, resolved); 20 if (status != B_OK) { 21 __set_errno(status); 22 return NULL; 23 } 24 25 // The path must actually exist, not just its parent directories 26 struct stat stat; 27 if (lstat(resolved, &stat) != 0) 28 return NULL; 29 30 return resolved; 31} 32