--- Revision None +++ Revision 343337616435 @@ -0,0 +1,36 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +int main(int argc, char *argv[]) +{ + int fd; + + if (argc != 2) { + printf("Use: %s \n", argv[0]); + return 1; + } + + /* + * with O_WRONLY or O_RDWR, opening a directory always fails, even when passing + * O_DIRECTORY. Opening with O_RDONLY, without O_DIRECTORY succeeds for both + * regular files and directories. + */ + fd = open(argv[1], O_WRONLY); + if (fd == -1) { + printf("open error %d: %s\n", errno, strerror(errno)); + } else { + int e; + + e = fsetxattr(fd, "user.x1", "abc", 3, 0); + printf("file open fd = %d, setxattr(fd) = %d, fsync(fd) = %d\n", fd, e, fsync(fd)); + close(fd); + } + return 0; +} +