#include #include #include #include #ifdef __linux #include #include #endif #ifdef __APPLE__ #include #define getxattr(file, name, buffer, size) \ getxattr((file), (name), (buffer), (size), 0, 0) #define listxattr(file, buffer, size) \ listxattr((file), (buffer), (size), 0) #endif #define MAXATTR 1023 char buffer[MAXATTR+1]; char names[MAXATTR+1]; int main (int argc, char **argv ) { char *name; if (argc != 2 || !argv[1] ) { printf("Bad invocation!\n" "Usage: dumpxattrs FILENAME\n"); exit(1); } int size = listxattr(argv[1], names, MAXATTR); if (size == -1) { perror("listxattr() failed"); exit(2); } if (size==0) { printf("%s: No xattrs\n", argv[1]); return(0); } names[size]='\0'; for (name = names; name != NULL && name-names