Pascal / BaseUnix / FpChmod
FpAccess, FpAlarm, FpChdir, » FpChmod, FpChown, FpClose, FpClosedir, FpDup, FpDup2, FpExecv, FpExecve, FpExit, FpFcntl, pfdfillset, fpFD_CLR, fpFD_ISSET, fpFD_SET, fpFD_ZERO, FpFork, FPFStat, FpFtruncate, FpGetcwd, FpGetegid, FpGetEnv, fpgeterrno, FpGeteuid, FpGetgid, FpGetgroups, FpGetpgrp, FpGetpid, FpGetppid, fpGetPriority, FpGetuid, FpIOCtl, FpKill, FpLink, FpLseek, fpLstat, FpMkdir, FpMkfifo, Fpmmap, Fpmunmap, FpNanoSleep, fpNice, FpOpen, FpOpendir, FpPause, FpPipe, FpRead, FpReaddir, fpReadLink, FpRename, FpRmdir, fpSelect, fpseterrno, FpSetgid, fpSetPriority, FpSetsid, fpsettimeofday, FpSetuid,
Funcion: FpChmod()
Sintaxis:
function FpChmod(
 
  path: pChar;
 
  Mode: TMode
 
):cInt;
 
function FpChmod(
 
  path: Ansi

Descripcion: Define el modo de bits en el archivo en Path a el Mode. Mode puede ser especificado por los siguientes valores:

S_ISUID --> Define el "user ID" en ejecucion
S_ISGID Define el "ID group" en ejecucion
S_ISVTX --> Define "sticky bit"
S_IRUSR --> Lee por el propietario
S_IXUSR --> Escribe por el propietario
S_IXUSR --> Ejecuta por el propietario
S_IRGRP --> Lee por el propietario
S_IWGRP --> Escribe por "group"
S_IXGRP --> Ejecuta por "group"
X_IROTH --> Lee por "others"
S_IWOTH --> Escribe por "others"
S_ICOTH --> Ejecuta por others
S_IRWXO --> Lee, escribe, ejecuta por "others"
S_IRWXG --> Lee, escribe, ejecuta por "groups"
S_IRWXU --> Lee, escribe, ejecuta por "user"

Si la funcion se ejecuta correctamente, devuelve zero. Un valor diferente de zero si ocurre algun error.

ERRORES:
Los siguientes codigos de eror son regrezados

sys_eperm --> El UID no coincide con el propietario de el archivo, y este no es zero. Propietaro o group no fueron especificados correctamente.

sys_eaccess --> Uno de los directorios en el path no tiene servicios de buscado (ejecutado)

sys_enomem --> Insuficiente memoria para el kernel

sys_erofs --> El archivo esta sobre un sistema de archivo read-only

sys_eloop --> El path hizo referencia a un cirsular simbolic link, esto quieres decir que un symbolic link, de quien extension apunta a si mismo
Ejemplo:
Program Example23;
 
{ Program to demonstrate the Chmod function. }
 
Uses BaseUnix,Unix;
 
Var F : Text;
 
begin
  { Create a file }
  Assign (f,'testex21');
  Rewrite (F);
  Writeln (f,'#!/bin/sh');
  Writeln (f,'echo Some text for this file');
  Close (F);
  fpChmod ('testex21',&777);
  { File is now executable  }
  execl ('./testex21');
end.

Librerias Pascal

Libreria crt - CRT - Pantalla y teclado del PASCAL de Turbo que maneja la unidad
Libreria dos - DOS - Interface Turbo Pascal MS-DOS
Libreria Graph - Unidad para manipular los graficos de la pantalla compatible con TP
Libreria Objects - Objetos basicos compatible con TP
Libreria math - Rutinas adicionales matematicas
Libreria Printer - Provee de acceso a la impresora
Libreria strings - Rutinas para el manejo de cadenas
Libreria BaseUnix - Funcionalidad Basica de Linux
Libreria System - Manejo de Archivos - Funciones para la manipulacion de archivos en Pascal