1/*
2 * Copyright 2008, Axel D��rfler, axeld@pinc-software.de.
3 * Distributed under the terms of the MIT License.
4 */
5
6
7#include <ctype.h>
8#include <errno.h>
9#include <fcntl.h>
10#include <stdio.h>
11#include <stdlib.h>
12#include <string.h>
13#include <sys/stat.h>
14#include <unistd.h>
15
16
17extern const char *__progname;
18
19
20int
21main(int argc, char **argv)
22{
23	if (argc < 3) {
24		fprintf(stderr, "usage: %s <file> <size>\n", __progname);
25		return 1;
26	}
27
28	struct stat st;
29	if (stat(argv[1], &st) != 0) {
30		fprintf(stderr, "%s: cannot stat file \"%s\": %s\n", __progname,
31			argv[1], strerror(errno));
32		return 1;
33	}
34
35	int fd = open(argv[1], O_RDONLY);
36	if (fd < 0) {
37		fprintf(stderr, "%s: could open the file read-only \"%s\": %s\n",
38			__progname, argv[1], strerror(errno));
39		return 1;
40	}
41	if (fchmod(fd, 0666) == -1) {
42		fprintf(stderr, "%s: couldn't chmod a file opened read-only \"%s\": %s\n",
43			__progname, argv[1], strerror(errno));
44		close(fd);
45		return 1;
46	}
47	close(fd);
48
49	return 0;
50}
51