summaryrefslogtreecommitdiffstats
path: root/sbin/newfs_msdos
diff options
context:
space:
mode:
authored <ed@FreeBSD.org>2009-04-11 14:33:10 +0000
committered <ed@FreeBSD.org>2009-04-11 14:33:10 +0000
commit9f361d5f3eaa36786458891796c4d1c7df17212c (patch)
tree38ddd17e8d35b3694d4b5319f1d80d3de4c2b952 /sbin/newfs_msdos
parent9b05913c11944ede886f15a7d29725de2774fbcb (diff)
downloadFreeBSD-src-9f361d5f3eaa36786458891796c4d1c7df17212c.zip
FreeBSD-src-9f361d5f3eaa36786458891796c4d1c7df17212c.tar.gz
Use ftruncate() instead of lseek()+write()+lseek() to set the created
file (-C) to the requested size. Submitted by: Christoph Mallon <christoph mallon gmx de>
Diffstat (limited to 'sbin/newfs_msdos')
-rw-r--r--sbin/newfs_msdos/newfs_msdos.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/sbin/newfs_msdos/newfs_msdos.c b/sbin/newfs_msdos/newfs_msdos.c
index cccc9e9..0b78771 100644
--- a/sbin/newfs_msdos/newfs_msdos.c
+++ b/sbin/newfs_msdos/newfs_msdos.c
@@ -356,17 +356,13 @@ main(int argc, char *argv[])
}
dtype = *argv;
if (opt_create) {
- off_t pos;
-
if (opt_N)
errx(1, "create (-C) is incompatible with -N");
fd = open(fname, O_RDWR | O_CREAT | O_TRUNC, 0644);
if (fd == -1)
errx(1, "failed to create %s", fname);
- pos = lseek(fd, opt_create - 1, SEEK_SET);
- if (write(fd, "\0", 1) != 1)
+ if (ftruncate(fd, opt_create))
errx(1, "failed to initialize %jd bytes", (intmax_t)opt_create);
- pos = lseek(fd, 0, SEEK_SET);
} else if ((fd = open(fname, opt_N ? O_RDONLY : O_RDWR)) == -1 ||
fstat(fd, &sb))
err(1, "%s", fname);
OpenPOWER on IntegriCloud