Lines Matching full:file
8 * you may not use this file except in compliance with the License.
20 * \file
21 * \brief File abstraction.
55 deFile* file = (deFile*)deCalloc(sizeof(deFile));
56 if (!file)
59 return file;
62 file->fd = fd;
63 return file;
109 void deFile_destroy (deFile* file)
111 close(file->fd);
112 deFree(file);
115 deBool deFile_setFlags (deFile* file, deUint32 flags)
119 int oldFlags = fcntl(file->fd, F_GETFL, 0);
121 if (fcntl(file->fd, F_SETFL, newFlags) != 0)
127 int oldFlags = fcntl(file->fd, F_GETFD, 0);
129 if (fcntl(file->fd, F_SETFD, newFlags) != 0)
149 deBool deFile_seek (deFile* file, deFilePosition base, deInt64 offset)
151 return lseek(file->fd, offset, mapSeekPosition(base)) >= 0;
154 deInt64 deFile_getPosition (const deFile* file)
156 return lseek(file->fd, 0, SEEK_CUR);
159 deInt64 deFile_getSize (const deFile* file)
162 deInt64 curPos = lseek(file->fd, 0, SEEK_CUR);
167 if (lseek(file->fd, -1, SEEK_END) < 0)
170 size = lseek(file->fd, 0, SEEK_CUR);
171 lseek(file->fd, curPos, SEEK_SET);
186 deFileResult deFile_read (deFile* file, void* buf, deInt64 bufSize, deInt64* numReadPtr)
188 deInt64 numRead = read(file->fd, buf, bufSize);
196 deFileResult deFile_write (deFile* file, const void* buf, deInt64 bufSize, deInt64* numWrittenPtr)
198 deInt64 numWritten = write(file->fd, buf, bufSize);
229 deFile* file = (deFile*)deCalloc(sizeof(deFile));
230 if (!file)
233 return file;
236 file->handle = (HANDLE)handle;
237 return file;
293 void deFile_destroy (deFile* file)
295 CloseHandle(file->handle);
296 deFree(file);
299 deBool deFile_setFlags (deFile* file, deUint32 flags)
306 if (!SetHandleInformation(file->handle, HANDLE_FLAG_INHERIT, (flags & DE_FILE_CLOSE_ON_EXEC) ? HANDLE_FLAG_INHERIT : 0))
312 deBool deFile_seek (deFile* file, deFilePosition base, deInt64 offset)
328 return SetFilePointer(file->handle, lowBits, &highBits, method) != INVALID_SET_FILE_POINTER;
331 deInt64 deFile_getPosition (const deFile* file)
334 LONG lowBits = SetFilePointer(file->handle, 0, &highBits, FILE_CURRENT);
339 deInt64 deFile_getSize (const deFile* file)
342 DWORD lowBits = GetFileSize(file->handle, &highBits);
364 deFileResult deFile_read (deFile* file, void* buf, deInt64 bufSize, deInt64* numReadPtr)
373 result = ReadFile(file->handle, buf, bufSize32, &numRead32, DE_NULL);
381 deFileResult deFile_write (deFile* file, const void* buf, deInt64 bufSize, deInt64* numWrittenPtr)
390 result = WriteFile(file->handle, buf, bufSize32, &numWritten32, DE_NULL);