Como definir unix permissão constantes (LEITURA, GRAVAÇÃO, EXECUÇÃO)
-
22-12-2019 - |
Pergunta
Eu quero definir essas constantes e | los para diferentes operações para gerar permissões corretas.
Definindo-os como :
public static final int READ = 4;
public static final int WRITE = 2;
public static final int EXECUTE = 1;
me dá o resultado correto, conforme o esperado, como LEITURA | GRAVAÇÃO | EXECUÇÃO ou GRAVAÇÃO | EXECUÇÃO.
Não defini-los como
public static final int READ = 0x4;
public static final int WRITE = 0x2;
public static final int EXECUTE = 0x1;
me dê algum benefício?
Solução
Uma vez que eles são o equivalente em hexadecimal ou decimal, que só acrescenta em termos de capacidade de leitura para outros programadores.É funcionalmente o mesmo.
Embora, se você está fazendo isso para facilitar a leitura, octal seria ainda melhor, dado o sistema subjacente:
public static final int READ = 04;
public static final int WRITE = 02;
public static final int EXECUTE = 01;
ou ainda mais evidente:
public static final int READ = 1<<2;
public static final int WRITE = 1<<1;
public static final int EXECUTE = 1;
Mas o que pode ser excessivo :)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow