Подробности

[В начало]

Проблема в реализации № S0578

Краткое описание

fchmodat(..., AT_SYMLINK_NOFOLLOW) выдает ошибку ENOTSUP на не символьных ссылках

Подробное описание

POSIX susv4 гластит: The fchmodat()function may fail if: ... [EOPNOTSUPP] The AT_SYMLINK_NOFOLLOW bit is set in the flag argument, path names a symbolic link, and the system does not support changing the mode of a symbolic link. Но fchmodat выдает ошибку EOPNOTSUPP даже в случае не символьной ссылки

Пример

int main()
{
    mkdir("/tmp/test1", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
    int r = fchmodat(AT_FDCWD, "/tmp/test1", S_IRWXU|S_IRWXG|S_IROTH|S_IWOTH, AT_SYMLINK_NOFOLLOW);
    printf("res = %d  errno = %d", r, errno);
    if (errno == EOPNOTSUPP)
        printf("EOPNOTSUPP");

    return 0;
}

Компонент

glibc

Принято

Sourceware Bugzilla 14578

[В начало]