1 /* $OpenBSD: utils.c,v 1.2 2017/07/27 15:08:37 bluhm Exp $ */ 2 3 /* Written by Otto Moerbeek, 2006, Public domain. */ 4 5 #include <sys/types.h> 6 #include <sys/stat.h> 7 #include <dirent.h> 8 #include <err.h> 9 #include <fcntl.h> 10 #include <limits.h> 11 #include <stdio.h> 12 #include <string.h> 13 #include <unistd.h> 14 15 #include "utils.h" 16 17 void 18 createfiles(int nfiles) 19 { 20 int i, fd; 21 char file[PATH_MAX]; 22 23 mkdir("d", 0755); 24 for (i = 0; i < nfiles; i++) { 25 snprintf(file, sizeof file, "d/%d", i); 26 if ((fd = open(file, O_CREAT | O_WRONLY, 0600)) == -1) 27 err(1, "open %s", file); 28 close(fd); 29 } 30 } 31 32 void 33 delfiles(void) 34 { 35 DIR *dp; 36 struct dirent *f; 37 char file[PATH_MAX]; 38 39 dp = opendir("d"); 40 if (dp == NULL) 41 err(1, "opendir"); 42 while ((f = readdir(dp))) { 43 if (strcmp(f->d_name, ".") == 0 || 44 strcmp(f->d_name, "..") == 0) 45 continue; 46 snprintf(file, sizeof file, "d/%s", f->d_name); 47 if (unlink(file) == -1) 48 err(1, "unlink %s", f->d_name); 49 } 50 closedir(dp); 51 if (rmdir("d") == -1) 52 err(1, "rmdir"); 53 } 54