[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.html>
Más información sobre la lista de distribución Cconclase