Как определить константы разрешений UNIX (чтение, запись, выполнение)
-
22-12-2019 - |
Вопрос
Я хочу определить эти константы и |их для разных операций для создания правильных разрешений.
Определить их как:
public static final int READ = 4;
public static final int WRITE = 2;
public static final int EXECUTE = 1;
.
дает мне правильный результат, как и ожидалось, как прочитать |Написать |.Выполнить или писать |ВЫПОЛНЯТЬ.
определяет их как
public static final int READ = 0x4;
public static final int WRITE = 0x2;
public static final int EXECUTE = 0x1;
.
Дайте мне любую выгоду?
Решение
Поскольку они эквивалентны в шестнадцатеричном или десятичном периоде, которые добавляют только с точки зрения читаемости для других разработчиков.Это функционально то же самое.
Хотя, если вы делаете это для читаемости, восьмерикал будет еще лучше учитывать базовую систему:
public static final int READ = 04;
public static final int WRITE = 02;
public static final int EXECUTE = 01;
.
или еще более очевидно:
public static final int READ = 1<<2;
public static final int WRITE = 1<<1;
public static final int EXECUTE = 1;
.
Но это может быть чрезмерным :)
Не связан с StackOverflow