Как определить константы разрешений UNIX (чтение, запись, выполнение)

StackOverflow https://stackoverflow.com//questions/21051976

Вопрос

Я хочу определить эти константы и |их для разных операций для создания правильных разрешений.

Определить их как:

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;
.

Но это может быть чрезмерным :)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top