fstests: Add an auxiliary program to create an AF_UNIX socket
[xfstests-dev.git] / src / ftrunc.c
1 /*
2  * Copyright (c) 2000-2003 Silicon Graphics, Inc.
3  * All Rights Reserved.
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License as
7  * published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope that it would be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write the Free Software Foundation,
16  * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
17  */
18
19 #include <unistd.h>
20 #include <sys/types.h>
21 #include <sys/stat.h>
22 #include <fcntl.h>
23 #include <stdio.h>
24 #include <stdlib.h>
25 #include <string.h>
26
27 int
28 main(argc, argv)
29 int     argc;
30 char    **argv;
31
32 {
33 char *filename="testfile";
34 int c;
35 int fd, err;
36
37 if(argc != 3)
38         {        printf("Usage: cxfs_ftrunc -f filename\n");
39                 exit(1);
40         }
41
42 while((c=getopt(argc,argv,"f:"))!=EOF) {
43                 switch (c) {
44                 case 'f':
45                         filename = optarg;
46                         break;
47                 default:
48                         fprintf(stderr,"Usage: ftrunc -f filename\n");
49                         exit(1);
50                 }
51         }
52
53
54
55
56           /* open RDWR but with read-only perms */
57           fd = open(filename, O_CREAT|O_RDWR, 0400);
58           if (fd < 0) {
59                 perror("open failed");
60                 return 1;
61                 }
62
63           err = ftruncate(fd, 1000);
64           if (err < 0) {
65               perror("ftruncate failed");
66               return 1;
67            }
68
69           err = unlink(filename);
70           if (err < 0) {
71                 perror("unlink failed");
72                 return 1;
73           }     
74
75           return 0;
76
77 }