Es que lo que os puse es solo un resumen del codigo de una funcion la función entera es la siguiente por si asi lo veis mejor y me podeis ayudar:
#include <string.h>
#include <sys/types.h>
#include <sys/file.h>
#include <errno.h>
#include <unistd.h>
#include <dirent.h>
struct mensaje{
char nombre[80];
int borrar;
int tamano;
};
struct buzonmensajes{
int nummensajes;
int mensporborrar;
long tamanobuzon;
FILE *fich;
struct mensaje vectormensajes[100];
};
**********************
int iniciobuzon(){
struct dirent* elemento;
int i = 0;
char *nombre;
char *aux;
long tam;
int numelementos=0;
struct mensaje mens;
// Abrimos el directorio mail
DIR* inbox = opendir("mail");
if (inbox == NULL)
return 0;
for (elemento=readdir(inbox); elemento!=NULL; elemento=readdir(inbox))
numelementos++;
rewinddir(inbox);
// Creamos el buzón con los mensajes
inicializarbuzon(numelementos-2);
// Lo bloqueamos
if(!bloquearbuzon()){
return 0;
}
// Recorremos el contenido del directorio
elemento = readdir(inbox);
while (elemento!=NULL)
{
nombre=elemento->d_name;
// No contamos con los directorio . y ..
if ( nombre!="." && nombre!=".." ){
printf("el nombre del fichero es%s\n",nombre);
tam = tamanofich("mail", nombre);
if (tam<0)
{
return 0;
}
buzon.tamanobuzon+=tam;
buzon.vectormensajes.tamano=tam;
printf("Empezamos a rellenar el vuzon\n");
strcpy(aux,"mail/");
strcat(buzon.vectormensajes.nombre,nombre);
printf("rellenamos el mensaje\n");
buzon.vectormensajes.tamano=tam;
i++;
}
elemento = readdir(inbox);
}
// Cerramos la lectura del directorio
closedir(inbox);
return 1;
}
muchas gracias por contestarme.