From f7da73e371bcb909a18e654918b5d1e7931e5652 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 3 Jan 2023 07:25:24 +0000 Subject: mymalloc: use ftruncate(2) when creating a sparse file Unlike pwrite(2), it won't dirty the last page, and it's fewer arguments so argument passing is simpler. --- mymalloc.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mymalloc.h b/mymalloc.h index e781b43..eda669f 100644 --- a/mymalloc.h +++ b/mymalloc.h @@ -69,9 +69,9 @@ static void *my_mmap(size_t size) if (fd < 0) { flags |= MAP_ANONYMOUS; } else { - ssize_t w = pwrite(fd, "", 1, size - 1); /* sparse file */ + int t = ftruncate(fd, size); /* sparse file */ - if (w <= 0) { /* 0 may be ENOSPC */ + if (t < 0) { flags |= MAP_ANONYMOUS; close(fd); fd = -1; -- cgit v1.2.3-24-ge0c7