Linux - atributos de ficheros! ayuda por favor!

   
Vista:

atributos de ficheros! ayuda por favor!

Publicado por sorrub (1 intervención) el 01/04/2008 12:03:12
Hola, soy inexperta en programación y tengo que entregar la siguiente práctica mañan, porfavor si alguién puede echarme un cable se lo agradezco muchísimo!.

Lapráctica consiste en realizar una aplicación (en c bajo linux) que pregunte al usuario el nombre de un archivo, entonces verificará su existencia, si este existe informara por pantalla el tipo de archivo que es, así como su tamaño e identificador del propietario.
Si el archivo no existe, entonces se quedara en la espera de una señal. si Recibe la señal SIGUSR1, el programa escribirá un mensaje de continaución y continuará ejecutandose pidiendo de nuevo el nombre del archivo.

La aplicación termina al recibir una señal SIGTERM, en este caso escribirá un mensaje de despedida y terminará.

Como mencione soy inexperta asi que intentando realizar el código tengo mas o menso lo siguiente, peor se que está todo incoherente, por favor ayudarme que es urgente, GRACIAS DE ANTEMANO!!!

#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <math.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/stat.h>

void continuo (int sig1){
int filen;
char c [60];

sprintf(c,"Se ha recibido señal: %d SIGUSR1, continuo, escribir un nuevo nombre de archivo ",sig1);
write(2,c,strlen(c));

exit(0);





main(int argc, char *argv[])
{
int señal;
struct stat buf;

char filen[_MAX_PATH];
int res;

for (i=1; i < argc ; i++)


sprintf ("Nombre del archivo: ");
gets (filen);

if (write (1, "SI existe el archivo ", strlen("SI existe el fichero ")) < 0)
error("Error d'escriptura stdout");


{
sprintf("%s ",argv[0]);

if ( stat(argv[i], &buf) == -1 )
{
perror(argv[0]);
exit(-1);
}
else
{
sprintf("Tamaño del archivo %s %d bytes. ",argv[0],buf.st_size);
sprintf("Propietario %s . ", argv[0], buf.st_uid);
sprintf("Tipo de Fichero %d ", buf.st_mode);
}


else
{ sprintf("NO existe el archivo ");

pause();


if (signal (SIGUSR1, gestor) < 0)
{error("Programació SIGUSR1 amb error");



if (sig == 10){
signal(señal,continuo);

}

kill(getpid(),señal);
exit(0);

}
}
};

NOTA: he de implementar la llmada al sistema STAT para listar los datos del archivo. asi como read, write, signal y pause.
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