} else {
offset += written;
length -= written;
- position += written;
+ if (position !== null) {
+ position += written;
+ }
writeAll(fd, buffer, offset, length, position, callback);
}
}
if (!(data instanceof Buffer)) {
data = new Buffer('' + data, options.encoding || 'utf8');
}
- var written = 0;
+ var offset = 0;
var length = data.length;
var position = /a/.test(flag) ? null : 0;
try {
- while (written < length) {
- written += fs.writeSync(fd, data, written, length - written, position);
- position += written;
+ while (length > 0) {
+ var written = fs.writeSync(fd, data, offset, length, position);
+ offset += written;
+ length -= written;
+ if (position !== null) {
+ position += written;
+ }
}
} finally {
fs.closeSync(fd);