fs.truncate accepts an fd but it's poorly documented
- Version: master
- Platform: all
- Subsystem: fs
As I just found out from https://github.com/nodejs/node/pull/15409, you can call fs.truncate
with an fd
:
> var fd = fs.openSync('asdf.txt', 'r+')
undefined
> fs.truncateSync(fd)
undefined
But this behavior is surprising, since there's fs.ftruncate
for fd
s and it's easy to overlook the note in the documentation for fs.truncate
.
Options:
- Improve documentation for
fs.truncate
to make it more obvious that it also takesfd
s. For instance,path <string> | <Buffer>
needs to be replaced with something likepathOrFd <string> | <Buffer> | <number>
, andAsynchronous truncate(2).
needs to be replaced with something likeAsynchronous truncate(2) or ftruncate(2) depending on the argument
. - Phase out
fd
support infs.truncate
. This would be my preference, since it would avoid having two functions that can do the same thing, and it would make code such asfs.truncate(f)
more readable because it would be obvious thatf
is a path and not anfd
.