]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/blame - io/truncate.c
xfs: remove unnecessary indenting from xfs_attr3_leaf_getvalue
[thirdparty/xfsprogs-dev.git] / io / truncate.c
CommitLineData
959ef981 1// SPDX-License-Identifier: GPL-2.0
e246ba5f 2/*
da23017d
NS
3 * Copyright (c) 2003-2005 Silicon Graphics, Inc.
4 * All Rights Reserved.
e246ba5f
NS
5 */
6
6b803e5a
CH
7#include "command.h"
8#include "input.h"
e246ba5f 9#include "init.h"
48c46ee3 10#include "io.h"
e246ba5f
NS
11
12static cmdinfo_t truncate_cmd;
13
14static int
15truncate_f(
48c46ee3
NS
16 int argc,
17 char **argv)
e246ba5f 18{
48c46ee3 19 off64_t offset;
2c2f6d79 20 size_t blocksize, sectsize;
e246ba5f 21
48c46ee3 22 init_cvtnum(&blocksize, &sectsize);
f72d20ad 23 offset = cvtnum(blocksize, sectsize, argv[1]);
638473d8 24 if (offset < 0) {
e246ba5f
NS
25 printf(_("non-numeric truncate argument -- %s\n"), argv[1]);
26 return 0;
27 }
28
dde67673 29 if (ftruncate(file->fd, offset) < 0) {
e246ba5f
NS
30 perror("ftruncate");
31 return 0;
32 }
33 return 0;
34}
35
36void
37truncate_init(void)
38{
ad765595
AM
39 truncate_cmd.name = "truncate";
40 truncate_cmd.altname = "t";
e246ba5f
NS
41 truncate_cmd.cfunc = truncate_f;
42 truncate_cmd.argmin = 1;
43 truncate_cmd.argmax = 1;
48c46ee3 44 truncate_cmd.flags = CMD_NOMAP_OK | CMD_FOREIGN_OK;
e246ba5f
NS
45 truncate_cmd.args = _("off");
46 truncate_cmd.oneline =
47 _("truncates the current file at the given offset");
48
49 add_command(&truncate_cmd);
50}