Использует fchmod(int fildes, mode_t mode)
лучше, чем использовать chmod (const char * path, mode_t mode)?Лучше ли использовать fchmod над chmod?
ответ
Это почти идентично. chmod
займет немного меньше времени, так как он должен преобразовать путь в индексный индекс или имя файла, тогда как fchmod
имеет индекс inode/filenode, который уже просматривается.
Конечно, есть меньше условие ошибки, которые могут возникнуть с fchmod
, так как файл уже известен, существует, имеет разрешения на открытом и т.д.
При обработке содержимого файла, у вас уже есть файловый дескриптор (либо потому, что вы использовали open()
для его получения, либо потому, что вы использовали fopen()
и можете использовать fileno()
указатель FILE *
, чтобы получить его), вы можете использовать fchmod()
. Если вы не хотите открывать файл для какой-либо обработки, а только режим изменения, используйте chmod()
.
Это зависит от того, являются ли условия для соревнований проблемой или нет. С chmod
вы рискуете, что кто-то переименует файл из-под вас и chmodding неправильного файла. В определенных ситуациях (особенно если вы root) это может быть огромная дыра в безопасности.
Что делать, если кто-то переименовывает файл перед тем, как открыть файловый дескриптор на 'fchmod'? –
Отличный пункт. Я нашел http://www.mail-archive.com/[email protected]/msg00128.html для примера в реальном мире. Благодаря! –
@Checkers, это тоже возможность. Но после того, как вы откроете дескриптор файла, вы можете выполнить fstat и сравнить идентификатор пользователя и группы (или, возможно, посмотреть данные файла или, возможно, даже другие тесты), чтобы убедиться, что вы получили нужный файл. Кроме того, во многих случаях вы chmodding файл, который вы создали, и поэтому в открытом вызове нет условия гонки. – Omnifarious
- 1. В object.initialize, лучше ли использовать self. над @?
- 2. Использование fchmod в Unix
- 3. fchmod функция в C
- 4. Лучше ли использовать алгоритм Berkeleys над NTP для временной синхронизации?
- 5. Лучше ли использовать String.format над строкой Конкатенация в Java?
- 6. Лучше ли использовать session_set_save_handler?
- 7. Как использовать chmod с Node.js
- 8. Как использовать chmod в ~/.bashrc
- 9. Лучше ли использовать здесь attr_accessor?
- 10. Лучше ли использовать функцию .delegate()?
- 11. Будет ли лучше использовать Фрагменты?
- 12. Как лучше реализовать роли типа CHMOD для веб-приложений ASP.NET
- 13. Лучше ли использовать группы поиска или захвата?
- 14. Весенний тест: лучше использовать XML-конфигурацию над аннотациями?
- 15. Лучше ли использовать JavaScript или XQuery?
- 16. В каких ситуациях лучше использовать float над двойным в Java?
- 17. Лучше ли использовать индекс для ORDER BY?
- 18. Лучше ли связывать это или использовать переменную?
- 19. Всегда ли лучше использовать asp Control?
- 20. Лучше ли использовать подзапрос в базе данных?
- 21. Действительно ли лучше использовать нормализованные таблицы?
- 22. Лучше ли повторно использовать StringBuilder в цикле?
- 23. Лучше ли использовать действие для запуска фрагмента?
- 24. Лучше ли использовать или расширять класс? (swift)
- 25. Лучше ли использовать jquery, чем java-скрипт?
- 26. Лучше ли использовать List или Collection?
- 27. Лучше ли использовать WPF поверх Windows Forms?
- 28. Как использовать chmod для изменения прав доступа?
- 29. Исключения chmod
- 30. Лучше ли DLinq над IQueryable или DLinq над IEnumerable для лучшей производительности?
В чем заключен контекст? –
Мне было просто интересно. – PJT
См. Ответ Omnifarious и, например, http://www.mail-archive.com/[email protected]/msg00128.html. Поэтому я бы сказал, что всегда используйте fchmod. –