Changeset 26608 in vbox for trunk/src/VBox/Runtime/r3/linux
- Timestamp:
- Feb 17, 2010 12:48:33 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 57801
- Location:
- trunk/src/VBox/Runtime/r3/linux
- Files:
-
- 1 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/r3/linux/sysfs.cpp
r26253 r26608 208 208 pszBuf[cchRead >= 0 ? cchRead : 0] = '\0'; 209 209 return cchRead; 210 } 211 212 213 RTDECL(int) RTLinuxSysFsReadFile(int fd, void *pvBuf, size_t cbBuf, size_t *pcbRead) 214 { 215 int rc; 216 ssize_t cbRead = read(fd, pvBuf, cbBuf); 217 if (cbRead >= 0) 218 { 219 if (pcbRead) 220 *pcbRead = cbRead; 221 if ((size_t)cbRead < cbBuf) 222 rc = VINF_SUCCESS; 223 else 224 { 225 /* Check for EOF */ 226 char ch; 227 off_t off = lseek(fd, 0, SEEK_CUR); 228 ssize_t cbRead2 = read(fd, &ch, 1); 229 if (cbRead2 == 0) 230 rc = VINF_SUCCESS; 231 else if (cbRead2 > 0) 232 { 233 lseek(fd, off, SEEK_SET); 234 rc = VERR_BUFFER_OVERFLOW; 235 } 236 else 237 rc = RTErrConvertFromErrno(errno); 238 } 239 } 240 else 241 rc = RTErrConvertFromErrno(errno); 242 return rc; 210 243 } 211 244
Note:
See TracChangeset
for help on using the changeset viewer.