fs.ftruncate(fd[, len], callback)


截断文件描述符。除了可能的异常之外,没有为完成回调提供任何参数。

¥Truncates the file descriptor. No arguments other than a possible exception are given to the completion callback.

有关更多详细信息,请参阅 POSIX ftruncate(2) 文档。

¥See the POSIX ftruncate(2) documentation for more detail.

如果文件描述符引用的文件大于 len 个字节,则文件中将仅保留前 len 个字节。

¥If the file referred to by the file descriptor was larger than len bytes, only the first len bytes will be retained in the file.

例如,以下程序仅保留文件的前四个字节:

¥For example, the following program retains only the first four bytes of the file:

import { open, close, ftruncate } from 'node:fs';

function closeFd(fd) {
  close(fd, (err) => {
    if (err) throw err;
  });
}

open('temp.txt', 'r+', (err, fd) => {
  if (err) throw err;

  try {
    ftruncate(fd, 4, (err) => {
      closeFd(fd);
      if (err) throw err;
    });
  } catch (err) {
    closeFd(fd);
    if (err) throw err;
  }
}); 

如果文件先前小于 len 个字节,则将其扩展,并且扩展部分将使用空字节('\0')填充:

¥If the file previously was shorter than len bytes, it is extended, and the extended part is filled with null bytes ('\0'):

如果 len 为负数,则将使用 0

¥If len is negative then 0 will be used.