Llamada Al Sistema Linux

download Llamada Al Sistema Linux

of 3

description

lel

Transcript of Llamada Al Sistema Linux

Llamadas al sistema de LINUX open.- Abre un archivo o dispositivo.#include #include #include int open(const char *pathname, int flags);int open(const char *pathname,int flags, mode_t mode);int creat(const char *pathname, mode_t mode);

Dado un nombre de ruta de un archivo, open() devuelve un descriptor del archivo, un pequeo nmero entero no negativo para su uso en llamadas al sistema posteriores(read, write, lseek, fcntl, etc.). close.- Cierra un archivo descrito.#include int close(int fd);close() cierra un archivo descrito, as no se refiere a cualquier archivo y puede ser reutilizada. read.- Lee de un archivo descrito.#include ssize_t read(int fd, void *buf, size_t count);read() intenta leer todos los bytes de un archivo descrito (fd) en el buffer que empieza (buf). write.- Escribe sobre un archivo descrito.#include ssize_t write(int fd, const void *buf, size_t count);

write() escribe desde el buffer (buf) sobre un archivo descrito(fd). creat.- Si desean expresarmente crear un fichero, disponen de la llamadacreat. Su prototipo esint creat ( char*nombre, intacceso);Equivale (ms o menos) a llamar aopen (nombre, O_RDWR|O_CREAT,acceso). Es decir, devuelve un descriptor si el fichero se ha creado y abierto, y -1 en caso contrario. lseek.- El C y UNIX manejan ficheros secuenciales. Es decir, conforme se va leyendo o escribiendo, se va avanzando en la posicin relativa dentro del fichero. El acceso directo a cualquier posicin dentro de un fichero puede lograrse con la funcinlseek.long lseek ( intfichero, longdesp, intorigen);Como siempre,ficheroes el descriptor de un fichero y abierto.El parmetrodespjunto conorigensirven para determinar el punto del fichero donde va a acabar el puntero.despes un entero largo que expresa cuntosbyteshay que moverse a partir del punto indicado enorigen, parmetro que podr adoptar estos valores:0

SEEK_SET

inicio del fichero

1

SEEK_CUR

relativo a la posicin actual

2

SEEK_END

relativo al final del fichero

Las constantes simblicas se encuentran eny.El parmetrodesppuede adoptar valores negativos, siempre que tengan sentido. Si el resultado final da una posicin mayor que el tamao del fichero, ste crece automticamente hasta esa posicin.La funcinlseekdevuelve un entero largo que es la posicin absoluta donde se ha posicionado el puntero; o un -1 si hubo error. Obsrvese que la funcinlseekpuede utilizarse tambin para leer la posicin actual del puntero. access.- Checa los permisos de usuario para un archivo#include int access(const char *pathname, int mode);

access() comprueba si el proceso de llamada puede acceder al archivo de ruta.

stat.- Obtenemos el estatus del archivo

#include #include #include int stat(const char *pathname, struct stat *buf); La funcin stat() nos regresa informacin sobre el archivo, en el buffer posicionado en buf. chmod.- Cambia permisos de un archivo #include int chmod(const char *pathname, mode_t mode);

Los nuevos permisos son especificados en mode. chown.- Cambia el propietario y el grupo de un archivo#include int chown(const char *pathname, uid_t owner, gid_t group);

fcntl.- Manipula un archivo descrito#include #include int fcntl(int fd, int cmd, ... /* arg */ ); hace una operacin sobre el archivo descrito especificado, la operacin viene determinada en cmd opendir.- Abre un directorio#include #include DIR *opendir(const char *name);DIR *fdopendir(int fd);

Abre un directorio pero regresa pero regresa un puntero en el directorio posicionado en la primera entrada del directorio. readdir.- Lee un directorio#include struct dirent *readdir(DIR *dirp);int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);

Regresa el puntero a la estructura dirent que representa la siguiente entrada del directorio sealado por dirp