代码如下:
var fs = require('fs');
var buf = new Buffer.alloc(1024*1);
fs.open('E:/for_file/6.txt','r',function (e,fd) {
if (e) {
return console.error(e);
}
fs.ftruncate(fd,5, function (err) {
if (err) {
return console.error(err);
}
fs.read(fd, buf, 0, buf.length, 0, function (e, num) {
if (e) {
return console.error(e);
}
if (num > 0) {
console.log('hello');
console.log(buf.toString());
}
fs.close(fd, function (e) {
if (e) {
return console.error(e);
}
})
});
});
});
{ Error: EPERM: operation not permitted, ftruncate errno: -4048, code: 'EPERM', syscall: 'ftruncate' }
经过查询可知,是由于打开文件的权限不够fs.ftruncate的操作,即权限的问题,将‘r’改成‘r+’读写操作即可