[C con Clase] colas de mensaje

Dagoberto Duran unodago en gmail.com
Mie Mar 28 01:37:54 CEST 2012


2012/3/28 Dagoberto Duran <unodago en gmail.com>

> creo un mensaje y lo meto en una cola  de mensajes
>
> por aca estan los define y la cola de buzones
>
> #define CREAR 1
> #define BORRAR 2
> #define AGREGAR_LINEA 3
> #define TERMINAR 4
>
> etc,etc
>
>
>
>
> while((op=menu()) != 0)
>     {
> switch(op)
>  {
> case 0:
>     puts("Esto no va a salir nunca");
>     break;
> case 1:
>     datos.tipo = CREAR;
>     printf("Introduce el nombre para el fichero\n");
>     scanf("%s", datos.fichero);
>     break;
> case 2:
>     datos.tipo = BORRAR;
>     printf("Introduce el nombre del fichero que desea borrar\n");
>     scanf("%s", datos.fichero);
>     break;
> case 3:
>     datos.tipo = AGREGAR_LINEA;
>     printf("Introduce el nombre del fichero que desea modificar\n");
>     scanf("%s", datos.fichero);
>     break;
> default:
>     puts("Opcion incorrecta");
>  }
>     }
>
>
>
> Ahora quiero leer de la cola de buzones un mensaje
> entoces he hecho lo sgte
>
> por aca estan los define y la cola
>
> #define CREAR 1
> #define BORRAR 2
> #define AGREGAR_LINEA 3
> #define TERMINAR 4
>
> typedef struct{
> long tipo;
> char fichero[20];
> char newLinea[80];
> }mensaje;
>
> int menu();
>
> main()
> {
>
>     key_t clave;
>     int id_buzonmsj, op;
>     mensaje datos;
>     memset(&datos, 0, sizeof(datos));
>
>     clave=ftok("/bin/ls",'r');
>
>     if(clave == -1)
>     {
> perror("No clave");
>  exit(EXIT_FAILURE);
>     }
>
>     id_buzonmsj = msgget(clave, IPC_CREAT|0644);
>
>     if(id_buzonmsj == -1)
>     {
> perror("No cola");
> exit(EXIT_FAILURE);
>     }
>
> if(msgrcv(id_buzonmsj, &datos, sizeof(datos), 0, IPC_NOWAIT) != -1)
>     {
> while((op=menu()) != 0)
>  {
>     switch(op)
>     {
>     case 0:
> puts("Esto no va a salir nunca");
> break;
>     case 1:
> datos.tipo = CREAR;
> system("touch datos.fichero");
>                         /* ¿PREGUNTA? Como meter la variable
> datos.fichero que contiene el nombre del
>          fichero recuperado del mensaje dentro de la funcion  system
>
   Quiero crear el fichero con el nombre que he recojido del mensaje

> */
>
break;
>     case 2:
>  datos.tipo = BORRAR;
> system("remove datos.fichero");
>
                           /*¿PREGUNTA? Lo mismo que al crear. Quiero
eliminar el fichero escojiendolo con el nombre que he recojido de la
variable del mensaje   "datos.fichero"*/

> break;
>     /*case 3:
> agregar_linea_fichero("clientes.txt","");
>  break;*/
>     default:
> puts("Opcion incorrecta");
>     }
> }
>     }
> }
>
>
Si alguien me puede ayudar os lo agradezco...
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20120328/58241c85/attachment-0001.html>


Más información sobre la lista de distribución Cconclase