Al intentar compilar el proyecto me da un error de 'conflicting types for 'ConvierteModo2''.
Las librerías necesarias las tengo todas importadas, y he probado a hacerlo de forma chapuza, y no modularizada, y así funciona. De aquí saco como conclusión que el problema viene de que no me lee bien el mode_t pasado por parámetro, o bien que el hecho de que me devuelva un puntero a un char falle en algún punto...
Este es el código:
Código:
else if (strcmp( entrada,"info")==0) {
char *permiso;
char path[]="/home/julian/Escritorio/a.out";
permiso=(char *) malloc (12);
struct stat a;
stat(/*trim(tr[1])*/path, &a);
permiso=ConvierteModo2(a.st_mode);
Código:
char *ConvierteModo2 (mode_t m) {
static char permisos[12];
strcpy (permisos,"---------- ");
permisos[0]=TipoFichero(m);
if (m&S_IRUSR) permisos[1]='r'; /*propietario*/
if (m&S_IWUSR) permisos[2]='w';
if (m&S_IXUSR) permisos[3]='x';
if (m&S_IRGRP) permisos[4]='r'; /*grupo*/
if (m&S_IWGRP) permisos[5]='w';
if (m&S_IXGRP) permisos[6]='x';
if (m&S_IROTH) permisos[7]='r'; /*resto*/
if (m&S_IWOTH) permisos[8]='w';
if (m&S_IXOTH) permisos[9]='x';
if (m&S_ISUID) permisos[3]='s'; /*setuid, setgid y stickybit*/
if (m&S_ISGID) permisos[6]='s';
if (m&S_ISVTX) permisos[9]='t';
return (permisos);
}
Alguien podría echarme una mano? Gracias de antemano.