## fs.truncate(path, len, callback)
Asynchronous truncate(2). No arguments other than a possible exception are
-given to the completion callback.
+given to the completion callback. A file descriptor can also be passed as the
+first argument. In this case, `fs.ftruncate()` is called.
## fs.truncateSync(path, len)
fs.truncate = function(path, len, callback) {
if (typeof path === 'number') {
- var req = new FSReqWrap();
- req.oncomplete = callback;
- return fs.ftruncate(path, len, req);
+ return fs.ftruncate(path, len, callback);
}
if (typeof len === 'function') {
callback = len;
--- /dev/null
+var common = require('../common');
+var assert = require('assert');
+var path = require('path');
+var fs = require('fs');
+var tmp = common.tmpDir;
+if (!fs.existsSync(tmp))
+ fs.mkdirSync(tmp);
+var filename = path.resolve(tmp, 'truncate-file.txt');
+
+var success = 0;
+
+fs.writeFileSync(filename, 'hello world', 'utf8');
+var fd = fs.openSync(filename, 'r+');
+fs.truncate(fd, 5, function(err) {
+ assert.ok(!err);
+ assert.equal(fs.readFileSync(filename, 'utf8'), 'hello');
+ success++;
+});
+
+process.on('exit', function() {
+ fs.closeSync(fd);
+ fs.unlinkSync(filename);
+ assert.equal(success, 1);
+ console.log('ok');
+});