13e12c5d1SDavid du Colombier #include "lib.h" 23e12c5d1SDavid du Colombier #include <stddef.h> 37dd7cddfSDavid du Colombier #include <stdlib.h> 43e12c5d1SDavid du Colombier #include <unistd.h> 53e12c5d1SDavid du Colombier #include <errno.h> 63e12c5d1SDavid du Colombier #include <string.h> 73e12c5d1SDavid du Colombier #include <stdio.h> 83e12c5d1SDavid du Colombier #include "sys9.h" 93e12c5d1SDavid du Colombier #include "dir.h" 103e12c5d1SDavid du Colombier 117dd7cddfSDavid du Colombier char* getcwd(char * buf,size_t len)127dd7cddfSDavid du Colombiergetcwd(char *buf, size_t len) 137dd7cddfSDavid du Colombier { 147dd7cddfSDavid du Colombier int fd; 157dd7cddfSDavid du Colombier 167dd7cddfSDavid du Colombier fd = _OPEN(".", OREAD); 177dd7cddfSDavid du Colombier if(fd < 0) { 187dd7cddfSDavid du Colombier errno = EACCES; 197dd7cddfSDavid du Colombier return 0; 207dd7cddfSDavid du Colombier } 217dd7cddfSDavid du Colombier if(_FD2PATH(fd, buf, len) < 0) { 227dd7cddfSDavid du Colombier errno = EIO; 237dd7cddfSDavid du Colombier _CLOSE(fd); 247dd7cddfSDavid du Colombier return 0; 257dd7cddfSDavid du Colombier } 267dd7cddfSDavid du Colombier _CLOSE(fd); 27*9a747e4fSDavid du Colombier 28*9a747e4fSDavid du Colombier /* RSC: is this necessary? */ 297dd7cddfSDavid du Colombier if(buf[0] == '\0') 307dd7cddfSDavid du Colombier strcpy(buf, "/"); 317dd7cddfSDavid du Colombier return buf; 327dd7cddfSDavid du Colombier } 33