[Duda] C y permisos

Tengo que realizar un ejercicio que pasando unos permios en octal y un nodo, le de los permisos que yo indico a dicho nodo, hasta hay todo perfecto, el problema llega cuando al dar los permisos, estos no se asignan correctamente por culpa de la mascara, me gustaria saber como puedo modificar esta, cambiar permisos, y volver a dejar la mascara tal y como estaba antes de yo modificarla, o si ay alguna forma de saltarse y con la funcion chmod darle los permisos que yo quiero

Gracias de antemano
Tu post está un poco "embarullado", pero creo que lo que necesitas lo tienes en la página de manual de umask:

http://ss64.com/bash/umask.html

El comando umask, sin argumentos, te devuelve la máscara actual, que puedes almacenar en una variable de entorno y recuperar más adelante.
eso no me vale, ya que es un comando unix, y no una funcion de C, y no lo puedo llamar desde dentro de un programa
Bueno, sí que lo puedes llamar por programa y recuperar el valor de retorno.
De todas formas, una simple búsqueda en google te dará la solución. O un manual de C para Unix. Yo lo he encontrado en dos segundos y tú deberías poder hacerlo igual. Pienso que es mejor que te dé la herramienta a que te dé la solución.
Si lo pongo aqui es porque ya e buscado en google, en el manual en linea de unix, y en los apuntes de clase, y no me aclaro.
http://www.google.es/search?hl=es&rlz=1 ... =&gs_rfai=

http://www.opengroup.org/onlinepubs/000 ... umask.html

mode_t umask(mode_t cmask);

"The umask() function shall set the process' file mode creation mask to cmask and return the previous value of the mask"
"Bit positions that are set in cmask are cleared in the mode of the created file"

Está clarísimo. Sólo falta que alguien escriba el código por tí.

Espero que te sirva. Si no lo entiendes en inglés, se puede buscar en castellano, pero creo que ya lo puedes hacer tú solo.
5 respuestas