Update C
[slow/toolbox.git] / getmdea.c
1 #include <unistd.h>
2 #include <stdio.h>
3 #include <sys/types.h>
4 #include <attr/xattr.h>
5 #include <sys/stat.h>
6 #include <fcntl.h>
7
8 int main(int argc, char **argv)
9 {
10     ssize_t easize;
11     char eabuf[4096];
12     int fd;
13
14     if (argc != 3) {
15         printf("usage: getmdea FILE EAOUTFILE\n");
16         return 1;
17     }
18     
19     if ((easize = lgetxattr(argv[1], "user.org.netatalk.Metadata", eabuf, 0)) == -1) {
20         perror("lgetxattr");
21         return 1;
22     }
23     if (easize > 4096)
24         return 2;
25     if ((easize = lgetxattr(argv[1], "user.org.netatalk.Metadata", eabuf, easize)) == -1) {
26         perror("lgetxattr");
27         return 3;
28     }
29
30     if ((fd = creat(argv[2], 0666)) == -1) {
31         perror("creat");
32         return 3;
33     }
34         
35     if (write(fd, eabuf, easize) != easize) {
36         perror("write");
37         return 4;
38     }
39     
40     return 0;
41 }