Changes in uspace/lib/posix/sys/stat.c [ec18957a:9b1503e] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/posix/sys/stat.c
rec18957a r9b1503e 36 36 #define LIBPOSIX_INTERNAL 37 37 38 #include "stat.h" 38 39 #include "../internal/common.h" 39 #include "stat.h" 40 41 #include "../errno.h" 42 #include "../libc/mem.h" 40 #include <mem.h> 43 41 44 42 /** 45 * Convert HelenOS stat struct into POSIX stat struct (if possible) .43 * Convert HelenOS stat struct into POSIX stat struct (if possible) 46 44 * 47 * @param dest POSIX stat struct.48 * @param src HelenOS stat struct.45 * @param dest 46 * @param src 49 47 */ 50 48 static void stat_to_posix(struct posix_stat *dest, struct stat *src) … … 68 66 69 67 /** 70 * Retrieve file status for file associated with file descriptor.71 68 * 72 * @param fd File descriptor of the opened file.73 * @param st Status structure to be filled with information.74 * @return Zero on success, -1 otherwise.69 * @param fd 70 * @param st 71 * @return 75 72 */ 76 73 int posix_fstat(int fd, struct posix_stat *st) 77 74 { 78 75 struct stat hst; 79 int rc = fstat(fd, &hst); 80 if (rc < 0) { 81 /* fstat() returns negative error code instead of using errno. 82 */ 83 errno = -rc; 76 if (fstat(fd, &hst) == -1) { 77 // TODO: propagate a POSIX compatible errno 84 78 return -1; 85 79 } … … 89 83 90 84 /** 91 * Retrieve file status for symbolic link.92 85 * 93 * @param path Path to the symbolic link.94 * @param st Status structure to be filled with information.95 * @return Zero on success, -1 otherwise.86 * @param path 87 * @param st 88 * @return 96 89 */ 97 int posix_lstat(const char * path, struct posix_stat *st)90 int posix_lstat(const char *restrict path, struct posix_stat *restrict st) 98 91 { 99 / * There are currently no symbolic links in HelenOS. */100 return posix_stat(path, st);92 // TODO 93 not_implemented(); 101 94 } 102 95 103 96 /** 104 * Retrieve file status for regular file (or symbolic link target).105 97 * 106 * @param path Path to the file/link.107 * @param st Status structure to be filled with information.108 * @return Zero on success, -1 otherwise.98 * @param path 99 * @param st 100 * @return 109 101 */ 110 102 int posix_stat(const char *path, struct posix_stat *st) 111 103 { 112 104 struct stat hst; 113 int rc = stat(path, &hst); 114 if (rc < 0) { 115 /* stat() returns negative error code instead of using errno. 116 */ 117 errno = -rc; 105 if (stat(path, &hst) == -1) { 106 // TODO: propagate a POSIX compatible errno 118 107 return -1; 119 108 } … … 123 112 124 113 /** 125 * Change permission bits for the file if possible.126 114 * 127 * @param path Path to the file.128 * @param mode Permission bits to be set.129 * @return Zero on success, -1 otherwise.115 * @param path 116 * @param mode 117 * @return 130 118 */ 131 119 int posix_chmod(const char *path, mode_t mode) 132 120 { 133 / * HelenOS doesn't support permissions, return success. */134 return 0;121 // TODO 122 not_implemented(); 135 123 } 136 124 137 125 /** 138 * Set the file mode creation mask of the process.139 126 * 140 * @param mask Set permission bits are cleared in the related creation 141 * functions. Non-permission bits are ignored. 142 * @return Previous file mode creation mask. 127 * @param mask 128 * @return 143 129 */ 144 130 mode_t posix_umask(mode_t mask) 145 131 { 146 / * HelenOS doesn't support permissions, return empty mask. */147 return 0;132 // TODO 133 not_implemented(); 148 134 } 149 135
Note:
See TracChangeset
for help on using the changeset viewer.