Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
9325 Boppan 1
#include 
2
#include 
3
#include 
4
#include 
5
#include 
6
#include 
7
#include 
8
 
9
int main(int argc, char *argv[])
10
{
11
    unsigned begin, end;
12
    int pat_min, pat_max;
13
    char *path;
14
    if (argc == 6) {
15
        path = argv[1];
16
        sscanf(argv[2], "%u", &begin);
17
        sscanf(argv[3], "%u", &end);
18
        sscanf(argv[4], "%i", &pat_min);
19
        sscanf(argv[5], "%i", &pat_max);
20
    } else {
21
        fprintf(stderr, "mkdirrange     \n"
22
                        "pat_min + pat_max <= 244\n");
23
        exit(1);
24
    }
25
 
26
    int dirfd = open(path, O_DIRECTORY);
27
    if (dirfd == -1) {
28
        fprintf(stderr, "Can't open %s: %s\n", path, strerror(errno));
29
        exit(1);
30
    }
31
    char dirname[256];
32
    memset(dirname, 'x', 256);
33
 
34
    for(unsigned current = begin; current < end; current++) {
35
        int length = sprintf(dirname, "d%10.10u_", current);
36
        dirname[length] = 'x';
37
        length += pat_min + (current % pat_max);
38
        dirname[length] = '\0';
39
        if(mkdirat(dirfd, dirname, 0755)) {
40
            fprintf(stderr, "Can't mkdir %s: %s\n", dirname, strerror(errno));
41
            exit(1);
42
        } else {
43
            dirname[length] = 'x';
44
        }
45
    }
46
 
47
    return 0;
48
}