-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfilehole.c
33 lines (24 loc) · 947 Bytes
/
filehole.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Copyright (c) 2021. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
// Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan.
// Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna.
// Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus.
// Vestibulum commodo. Ut rhoncus gravida arcu.
#include "apue.h"
#include <fcntl.h>
char buf1[] = "abcdefghij";
char buf2[] = "ABCDEFGHIJ";
int main() {
int fd;
if ((fd = creat("file.hole", FILE_MODE)) < 0)
err_sys("Create error!");
if (write(fd, buf1, 10) != 10)
err_sys("buf1 write error!");
if(lseek(fd, 16384, SEEK_SET) == -1)
err_sys("lseek error");
if (write(fd, buf2, 10) != 10)
err_sys("buf2 write error!");
off_t currpos;
currpos = lseek(fd, 0, SEEK_CUR);
printf("Current offset is %d", currpos);
exit(0);
}