int main(int argc, char *argv[]) { int op,i; char nom[10]; char dir[30]; FILE *Fichero; do{ system("CLS"); printf("1.Crear Archivo\n2.Insertar datos\n3.Leer Datos\n4.Salir\nSu opcion es: "); scanf("%d",&op); switch(op){ case 1: printf("\nDame un nombre para el archivo\n"); scanf("%s",&nom); strcat(dir,"./Nombre/"); strcat(dir,nom); CrearFichero(Fichero,dir); break; case 2: printf("\nDame un nombre para el archivo\n"); scanf("%s",&nom); strcat(dir,"./Nombre/"); strcat(dir,nom); InsertarDatos(Fichero,dir); break; case 3: printf("\nDame un nombre para el archivo\n"); scanf("%s",&nom); strcat(dir,"./Nombre/"); strcat(dir,nom); LeerDatos(Fichero,dir); break; } for(i=0;i<30;i++) dir[i]='\0'; }while(op!=4); system("PAUSE"); return 0; }
/******************************************************************************* * Entrada principal al programa. * Argumentos: * argc -- Numero de parametros con el que se ha llamado al programa. * argv -- Array de cadenas que contiene los parametros de entrada al programa. ******************************************************************************/ main(int argc, char **argv) { //Truncamos, o creamos si no existe, el archivo para el mecanismo IPC. FILE *colas; if((colas = fopen(FICHERO, "w")) == NULL) { printf("\nServidor: No se puede crear el archivo para las colas de mensajes.\n"); exit(-1); } fclose(colas); //Creamos el token para la cola cliente-servidor. llaveCCS = ftok(FICHERO, CLAVE_CCS); if(llaveCCS == (key_t) - 1) { perror("\nServidor"); exit(-1); } //Creamos el token para la cola servidor-cliente. llaveCSC = ftok(FICHERO, CLAVE_CSC); if(llaveCSC == (key_t) - 1) { perror("\nServidor"); exit(-1); } //Obtenemos, o creamos si no existe, la cola cliente-servidor. msqIdCCS = msgget(llaveCCS, IPC_CREAT | 0666); if(msqIdCCS == -1) { perror("\nServidor"); exit(-1); } //Obtenemos, o creamos si no existe, la cola servidor-cliente. msqIdCSC = msgget(llaveCSC, IPC_CREAT | 0666); if(msqIdCSC == -1) { perror("\nServidor"); exit(-1); } //Bucle de recepcion y tratamiento de mensajes. while(1) { struct mensaje mensajeRcv; if(msgrcv(msqIdCCS, &mensajeRcv, LON_MENSAJE, 0, 0) == -1) { perror("\nServidor"); exit(-1); } switch(mensajeRcv.orden) { case PEDIR_DATOS: PedirDatos(mensajeRcv); break; case INSERTAR_DATO: InsertarDatos(mensajeRcv); break; case FIN_DE_COMUNICACION: CerrarServidor(); default: EnviarCSCMsg(mensajeRcv.pid, ERROR, mensajeRcv.datos); break; } } }