Calling the sticky bit "text" is not erroneous: On UNIX back in 1974, it instructed the operating system to retain the text segment of the program in swap space after the process exited. This speeded subsequent executions by allowing the kernel to make a single operation of moving the program from swap to real memory.
octdec
(PHP 4, PHP 5)
octdec — Octal a decimal
Descripción
Devuelve el valor decimal equivalente al número octal representado por el argumento cadena_octal .
Lista de parámetros
- cadena_octal
-
La cadena octal a convertir
Valores retornados
La representación decimal de cadena_octal
Registro de cambios
| Versión | Descripción |
|---|---|
| Desde 4.1.0 | La función puede ahora convertir números que son demasiado grandes para caber en el tipo integer de la plataforma, los valores más grandes son devueltos como valores tipo float en ese caso. |
Ejemplos
Example #1 Ejemplo de octdec()
<?php
echo octdec('77') . "\n";
echo octdec(decoct(45));
?>
El resultado del ejemplo seria:
63 45
octdec
harry at disgruntledgoat dot com
27-Mar-2007 01:03
27-Mar-2007 01:03
11-Sep-2002 10:51
The 'S' flag for Unix file access rights is badly computed in the above sample.
If the corresponding 'x' bit (exec) is not set, and the 's' bit (setgid/setuid/sticky) is set, then the flag should not be displayed as and uppercase 'S', but as a lower case 's'. Also the sticky bit (mainly used for folders with public right access rights such as /tmp to protect against deletion by non owner) is badly named ("text"?).
meheler at searchbc dot com
26-Oct-2001 05:03
26-Oct-2001 05:03
This function and decoct work great when working with file permissions. For example:
<?php
$mode = octdec('4750');
$user['suid'] = ($mode & 04000);
$user['read'] = ($mode & 00400);
$user['write'] = ($mode & 00200);
$user['execute'] = ($mode & 00100);
$group['sgid'] = ($mode & 02000);
$group['read'] = ($mode & 00040);
$group['write'] = ($mode & 00020);
$group['execute'] = ($mode & 00010);
$other['text'] = ($mode & 01000);
$other['read'] = ($mode & 00004);
$other['write'] = ($mode & 00002);
$other['execute'] = ($mode & 00001);
$attrs = array('-','-','-','-','-','-','-','-','-','-');
if ($system['dir']) $attrs[0] = 'd';
if ($user['read']) $attrs[1] = 'r';
if ($user['write']) $attrs[2] = 'w';
if ($user['execute']) $attrs[3] = 'x';
if ($user['suid']) $attrs[3] = 'S';
if ($group['read']) $attrs[4] = 'r';
if ($group['write']) $attrs[5] = 'w';
if ($group['execute']) $attrs[6] = 'x';
if ($group['sgid']) $attrs[6] = 'S';
if ($other['read']) $attrs[7] = 'r';
if ($other['write']) $attrs[8] = 'w';
if ($other['execute']) $attrs[9] = 'x';
if ($other['text']) $attrs[9] = 'T';
echo '<pre>';
echo 'Mode Decimal: ' . $mode . "\n";
echo 'Mode Octal: ' . decoct($mode) . "\n";
echo 'Mode String: ' . implode('',$attrs)."\n";
echo '</pre>';
?>
Outputs:
Mode Decimal: 2536
Mode Octal: 4750
Mode String: -rwSr-x---
-Mike
