Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Cambio de permisos de un fichero (para linux) utilizando stat

Estas en el tema de Cambio de permisos de un fichero (para linux) utilizando stat en el foro de C/C++ en Foros del Web. Hola a todos. Programo una pequeña aplicacion en C para cambiar los permisos de un fichero. No obstante me exigen que accesa a la estructura ...
  #1 (permalink)  
Antiguo 07/07/2008, 15:15
 
Fecha de Ingreso: agosto-2007
Mensajes: 3
Antigüedad: 16 años, 9 meses
Puntos: 0
Cambio de permisos de un fichero (para linux) utilizando stat

Hola a todos.

Programo una pequeña aplicacion en C para cambiar los permisos de un fichero. No obstante me exigen que accesa a la estructura que permite acceder a la informacion del fichero (dueño,fcha de creacion, etc).

La mejor forma para eso (la mejor que conozo) es utilizar la llamada a sistema fchmod(int fd,mode_t modo), supongo que habra otra que se parezca a algo asi como chmod (char *ruta,mode_t modo) . hasta ahy todo bn. (en C)

Hablando de la estructura stat, creo que la mayoria de nosotros utilizamos un apuntador a esa estructura y le pasamos como a la funcion stat(), o lstat() o fstat(), la cadena de caracteres o el identificador de archivo o proceso, y un apuntador de tipo stat, esa funcion llena el apuntador de tipo stat con toda la informacion del fichero en cuestion. (otra vez en C!!!)

El asunto al final es que se utilizar esta estructura stat para leer la informacion del fichero utilizando algo asi como

#include <librerias que no me acuerdo.h>

struct stat buff;

stat(pepito.sh,&buff) //accedo a la informacion de pepito.sh y la guardo sobre buff

buff.st_mode; //accedo a los permisos de pepito.sh

pero si hago algo como

mode_t newModo = 0777;

buff.st_mode=newModo;

obviamente se cambia la informacion en memoria que corresponde a la struct buff, no obstante ese newModo (permiso) no se actualiza en el archivo pepito.sh, ese fichero sigue en el disco con su permiso original.

Alguno de uds sabe como se puede actualizar ese permiso en disco utilizando la estructura stat y no la llamada a sistema fchmod() o chmod() ????
  #2 (permalink)  
Antiguo 09/07/2008, 04:34
Avatar de aloqui  
Fecha de Ingreso: diciembre-2007
Mensajes: 973
Antigüedad: 16 años, 5 meses
Puntos: 24
Respuesta: Cambio de permisos de un fichero (para linux) utilizando stat

Creo que no se puede. Las funciones stat(), fstat() y lstat() son de consulta y no de modificación.
De hecho tienes que pasarle la dirección de una estructura tuya para que la función la rellene.
__________________
Grupos de Música
Pop Music Stars
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:10.