C/Visual C - problema con puntero a cadena

 
Vista:

problema con puntero a cadena

Publicado por José Manuel (2 intervenciones) el 31/12/2005 14:39:35
Hola, estoy empezando en esto del c y tengo un problema. Estoy haciendo un programa tipo ls, que muestra los archivos de un directorio. Como tengo que implementar algunas opciones (-l -a -r ...) me es más fácil poner una función aparte que me dé el directorio (usando getcwd) que hacerlo en el código directamente, con lo que tendría que repetirlo varias veces, una si sólo me pasan el nombre del programa desde la shell y otra si después de las opciones no se especifica un directorio a listar, es decir, tendría que usar el path actual si desde la shell se hace:
>list ó
>list -la, pero no si se hace algo asi:

>list -l /home

Perdonad pq sé que es un poco lioso pero lo que pregunto es lo siguiente. Este es mi código:

int getDirectorio(char*);

int main(int argc, char *argv[]) {
int error = 0;
char directorio[PATH_MAX];
DIR *dirp;
struct dirent *direntp;

if (argc == 1) {
getDirectorio(directorio);
}
}

int getDirectorio(char *dir) {
int error = 0;

if (getcwd(dir, PATH_MAX) == NULL) {
perror("No se tuvo acceso al directorio"); //****
error=1;
}
return(error);
}

al compilar este trozo me da un fallo que dice que en la línea que os he marcado con asteriscos comparo un puntero con un entero, y no sé ya como ponerlo.
Os agradecería cualquier ayuda posible. Un saludo a todos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problema con puntero a cadena

Publicado por José Manuel (2 intervenciones) el 31/12/2005 14:43:03
Perdón, soy yo otra vez, el fallo no está en esa linea, sino en la que está justo arriba. Un saludo y feliz año nuevo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con puntero a cadena

Publicado por Blaine (1 intervención) el 02/01/2006 16:40:06
Si la línea que te falla es la (getcwd(dir, PATH_MAX) == NULL) prueba con cast, es decir, la línea siguiente:

(getcwd((char *) dir, (size_t) PATH_MAX) == NULL)

Espero que te sirva. Comenta si te funciona.

Saludos,
-Blaine-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar