LINUX.ORG.RU

почему нет владельца и группы

 ,


0

1

Я что-то не догоняю. Почему в boost::filesystem нет функционала получения владельца файла и группы? Не во всех поддерживаемых ОС есть ФС с данными атрибутами? Но ведь и тип файла, со значениями вроде «символьная ссылка», - это далеко не в каждой ОС поддерживается. Вот, в винде нет симлинков, а еще виндовая реализация игнорирует все права доступа кроме «запись». И ничего.

★★★★★

Ответ на: комментарий от PPP328

Да, разумеется. Но мы с этими символьными ссылками отвлеклись от главной темы - о uid/gid.

seiken ★★★★★
() автор топика

Сам спросил, сам ответил. Именно по этой причине, что это достаточно платформоспецифичный код, буст для буста, а не для кроссплатформы.

anonymous
()
Ответ на: комментарий от anonymous

буст для буста, а не для кроссплатформы.

Это как понимать? Зачем тогда в boost/std::filesystem включили perms? Ведь это говно мамонта POSIX, которое не имеет вообще никакого смысла без существования идентификаторов пользователя и группы файла?

seiken ★★★★★
() автор топика
Ответ на: комментарий от seiken

Ну что-то реализовали, что-то решили что не станут, вообще такие вопросы нужно задавать авторам, они обычно указаны в шапке исходных текстов, ищешь их контакты, обычно они там же и пишешь им письмецо в нормальной культурной подаче, или в списки рассылки или на форумы, и эти ребята тебе отвечают чем они руководствовались. Тут вроде не водилось авторов буста от файлсайстим.

anonymous
()
Ответ на: комментарий от seiken

Я думаю это связано с тем, что права доступа и прочие атрибуты файлов схожи вне зависимости от конкретной реализации в ФС или ОС. Read-only оно и в винде read only, например. И получать эти атрибуты достаточно просто, соответственно и написать кроссплатформенную реализацию не сложно. А вот владелец это совсем другая песня. Механизм владения файлами отличается между теми же Windows и POSIX настолько сильно, что создать по-настоящему кроссплатформенную реализацию получения владельца весьма проблематично.

Я так, мельком поглядел на то, как это выглядит на Windows. Это просто ад, поэтому я понимаю разрабов Буста… И комитет по стандартизации С++ (в std::filesystem тоже не запилили такую фичу).

Unicode4all ★★★★★
()
Последнее исправление: Unicode4all (всего исправлений: 2)
Ответ на: комментарий от anonymous

понимать это так, что буст дает возможность не реализовывать какие-то бойлерплейты которые нужны для нормального продакшен с++ кода, или были нужны в условиях того с++ когда все это писалось. Время идет, какие-то части буста уже можно считать устаревшими.

anonymous
()

Потому что функционал - это любое отображение из произвольного множества в произвольное (не обязательно числовое) кольцо. При чем здесь файловая система?

Хотя если uid - инт, то все сходится вроде.

cdshines ★★★★★
()
Ответ на: комментарий от Unicode4all

Механизм владения файлами отличается между теми же Windows и POSIX настолько сильно

???

GetSecurityInfo в Windows выдаёт ppsidOwner и ppsidGroup

POSIX stat выдаёт st_uid и st_gid

В чём разница?

monk ★★★★★
()
Ответ на: комментарий от monk

В чём разница?

Ну, для начала, в типах данных. PSID — это указатель на Security Identifier, который является структурой переменного размера. Выйти через неё на постоянный числовой идентификатор пользователя постоянного размера нельзя, потому что его в Windows просто нет.

А главное, что ты будешь с этими данными делать? Как ты будешь их кроссплатформенно обрабатывать, если эти данные привязаны к определённой платформе?

proud_anon ★★★★★
()
Ответ на: комментарий от proud_anon

Выйти через неё на постоянный числовой идентификатор

А зачем числовой? Можно считать общим форматом для передачи строку.

А главное, что ты будешь с этими данными делать? Как ты будешь их кроссплатформенно обрабатывать, если эти данные привязаны к определённой платформе?

Так с идентификаторами имеет смысл только сравнение на равенство, да получение имени. Обе функции в Windows есть. В С++ можно переопределить operator==().

monk ★★★★★
()
Ответ на: комментарий от monk

В общем-то как и ТС можно сказать тоже самое, пишите авторам filesystem предлагайте свои патчи к коду, ну или перестаньте критиковать постфактум носясь с идеями, но не делая ничего для того чтобы их воплотить.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.