
Hi, There appears to be no interface in Haskell to ftruncate(2). (Or, for that matter, the less-useful truncate(2)). For those that don't know, ftruncate(2) is frequently used to remove data at the end of an open file when that data is no longer needed. According to my Linux ftruncate(2) manpage: int truncate(const char *path, off_t length); int ftruncate(int fd, off_t length); ... CONFORMING TO 4.4BSD, SVr4 (these function calls first appeared in BSD 4.2). POSIX 1003.1-1996 has ftruncate. POSIX 1003.1-2001 also has truncate, as an XSI extension. I found this in fptools' libraries/base/System/Posix/Internals.hs: -- It isn't clear whether ftruncate is POSIX or not (I've read several -- manpages and they seem to conflict), so we truncate using open/2. fileTruncate :: FilePath -> IO () There are several problems with this: 1. System.Posix.Internals doesn't appear to be an exposed, documented API 2. There is no way to specify a length 3. There is no interface to ftruncate(). 4. If the manpages do conflict, a read of the standard should clarify it. In any case, ftruncate() appears to have been around for a LONG time. Would it be possible to provide a Haskell interface to ftruncate() at least? (truncate() can always be implemented in terms of it.) Thanks,
participants (1)
-
John Goerzen