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.