Hello, On the getxattr(2) manual page [1], it is indicated that the includes should be #include <sys/types.h> #include <attr/xattr.h> However, on my system [2], the compiler (g++) cannot find <attr/xattr.h>. #include <attr/xattr.h> fatal error: attr/xattr.h: No such file or directory There are only two xattr.h files on my system (according to locate(1)): /usr/include/linux/xattr.h /usr/include/sys/xattr.h It appears that replacing <attr/xattr.h> with <sys/xattr.h> fixes my compilation problem. I guess the manual page needs to be fixed? Thanks! Best regards Fabrice [1] http://man7.org/linux/man-pages/man2/fgetxattr.2.html [2] Fedora core 19 Linux localhost.localdomain 3.12.9-201.fc19.x86_64 #1 SMP kernel-3.12.9-201.fc19.x86_64 glibc-headers-2.17-20.fc19.x86_64
attr/xattr.h is provided by the attr package (which might be named diff depending on your distro). historically it was the provider of xattr functionality. that said, current versions of glibc provide equivalent functionality so there shouldn't be a need to point people to the attr package.
On my system, /usr/include/sys/xattr.h is provided by glibc-headers-2.17-20.fc19.x86_64.
(In reply to Fabrice Bauzac from comment #2) > On my system, /usr/include/sys/xattr.h is provided by > glibc-headers-2.17-20.fc19.x86_64. It looks like this has been so for a very long time now (bak to glibc 2.3?), but the man pages didn't get fixed. I've applied a fix (s%xattr/%sys/%) to getxattr.2 listxattr.2 removexattr.2 setxattr.2 Thanks for the report. Cheers, Michael
(In reply to Fabrice Bauzac from comment #2) ok, but i didn't say sys/xattr.h, i said attr/xattr.h (In reply to Michael Kerrisk from comment #3) i think these manpages were originally imported from the attr project ? the "standard" funcs have been provided by glibc for a long time: - {l,f,}getxattr - {l,f,}listxattr - {l,f,}removexattr - {l,f,}setxattr the attr package provides more funcs than those, and it provides command line utils for interacting with file xattrs, so it's not a completely obsolete package (at least for Linux)
(In reply to Mike Frysinger from comment #4) > (In reply to Fabrice Bauzac from comment #2) > > ok, but i didn't say sys/xattr.h, i said attr/xattr.h > > (In reply to Michael Kerrisk from comment #3) > > i think these manpages were originally imported from the attr project ? Yes, that's my recollection. > the "standard" funcs have been provided by glibc for a long time: > - {l,f,}getxattr > - {l,f,}listxattr > - {l,f,}removexattr > - {l,f,}setxattr > > the attr package provides more funcs than those, and it provides command > line utils for interacting with file xattrs, so it's not a completely > obsolete package (at least for Linux) Yup.