예제 #1
0
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;
}
예제 #2
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;
        }
    }
}