<br><br><div class="gmail_quote">2012/3/28 Dagoberto Duran <span dir="ltr"><<a href="mailto:unodago@gmail.com">unodago@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
creo un mensaje y lo meto en una cola de mensajes<div><br></div><div>por aca estan los define y la cola de buzones</div><div><br></div><div><div>#define CREAR 1</div><div>#define BORRAR 2</div><div>#define AGREGAR_LINEA 3</div>
<div>#define TERMINAR 4</div></div><div><br></div><div>etc,etc</div><div><br></div><div><br></div><div><br></div><div><br></div><div><div>while((op=menu()) != 0)</div><div> {</div><div><span style="white-space:pre-wrap"> </span>switch(op)</div>
<div><span style="white-space:pre-wrap"> </span>{</div><div><span style="white-space:pre-wrap"> </span>case 0:</div><div><span style="white-space:pre-wrap"> </span> puts("Esto no va a salir nunca");</div>
<div><span style="white-space:pre-wrap"> </span> break;</div><div><span style="white-space:pre-wrap"> </span>case 1:</div><div><span style="white-space:pre-wrap"> </span> datos.tipo = CREAR;</div>
<div><span style="white-space:pre-wrap"> </span> printf("Introduce el nombre para el fichero\n");</div><div><span style="white-space:pre-wrap"> </span> scanf("%s", datos.fichero);</div>
<div><span style="white-space:pre-wrap"> </span> break;</div><div><span style="white-space:pre-wrap"> </span>case 2:</div><div><span style="white-space:pre-wrap"> </span> datos.tipo = BORRAR;</div>
<div><span style="white-space:pre-wrap"> </span> printf("Introduce el nombre del fichero que desea borrar\n");</div><div><span style="white-space:pre-wrap"> </span> scanf("%s", datos.fichero);</div>
<div><span style="white-space:pre-wrap"> </span> break;</div><div><span style="white-space:pre-wrap"> </span>case 3:</div><div><span style="white-space:pre-wrap"> </span> datos.tipo = AGREGAR_LINEA;</div>
<div><span style="white-space:pre-wrap"> </span> printf("Introduce el nombre del fichero que desea modificar\n");</div><div><span style="white-space:pre-wrap"> </span> scanf("%s", datos.fichero);</div>
<div><span style="white-space:pre-wrap"> </span> break;</div><div><span style="white-space:pre-wrap"> </span>default:</div><div><span style="white-space:pre-wrap"> </span> puts("Opcion incorrecta");</div>
<div><span style="white-space:pre-wrap"> </span>}</div><div> }</div></div><div><br></div><div><br></div><div><br></div><div>Ahora quiero leer de la cola de buzones un mensaje</div><div>entoces he hecho lo sgte</div>
<div><br></div><div>por aca estan los define y la cola</div><div><br></div><div><div><div>#define CREAR 1</div><div>#define BORRAR 2</div><div>#define AGREGAR_LINEA 3</div><div>#define TERMINAR 4</div></div><div><br></div>
<div><div>typedef struct{</div><div><span style="white-space:pre-wrap"> </span>long tipo;</div><div><span style="white-space:pre-wrap"> </span>char fichero[20];</div><div><span style="white-space:pre-wrap"> </span>char newLinea[80];</div>
<div>}mensaje;</div><div><br></div><div>int menu();</div><div><br></div><div>main()</div><div>{</div><div> </div><div> key_t clave;</div><div> int id_buzonmsj, op;</div><div> mensaje datos;</div><div> memset(&datos, 0, sizeof(datos));</div>
<div> </div><div> clave=ftok("/bin/ls",'r');</div><div><br></div><div> if(clave == -1)</div><div> {</div><div><span style="white-space:pre-wrap"> </span>perror("No clave");</div>
<div><span style="white-space:pre-wrap"> </span>exit(EXIT_FAILURE);</div><div> }</div><div> </div><div> id_buzonmsj = msgget(clave, IPC_CREAT|0644);</div><div><br></div><div> if(id_buzonmsj == -1)</div>
<div> {</div><div><span style="white-space:pre-wrap"> </span>perror("No cola");</div><div><span style="white-space:pre-wrap"> </span>exit(EXIT_FAILURE);</div><div> }</div>
</div></div><div><br></div><div><div>if(msgrcv(id_buzonmsj, &datos, sizeof(datos), 0, IPC_NOWAIT) != -1)</div><div> {</div><div><span style="white-space:pre-wrap"> </span>while((op=menu()) != 0)</div>
<div><span style="white-space:pre-wrap"> </span>{</div><div><span style="white-space:pre-wrap"> </span> switch(op)</div><div><span style="white-space:pre-wrap"> </span> {</div>
<div><span style="white-space:pre-wrap"> </span> case 0:</div><div><span style="white-space:pre-wrap"> </span>puts("Esto no va a salir nunca");</div><div><span style="white-space:pre-wrap"> </span>break;</div>
<div><span style="white-space:pre-wrap"> </span> case 1:</div><div><span style="white-space:pre-wrap"> </span>datos.tipo = CREAR;</div><div><span style="white-space:pre-wrap"> </span>system("touch datos.fichero");</div>
<div> <span style><font color="#ff0000">/* ¿PREGUNTA? Como meter la variable datos.fichero que contiene el nombre del fichero recuperado del mensaje dentro de la funcion system</font></span></div>
</div></blockquote><div> <font color="#ff0000">Quiero crear el fichero con el nombre que he recojido del mensaje </font></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div><span style="color:rgb(255,0,0)">*/ </span></div></div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre-wrap"> </span>break;</div>
<div><span style="white-space:pre-wrap"> </span> case 2:</div>
<div><span style="white-space:pre-wrap"> </span>datos.tipo = BORRAR;</div><div><span style="white-space:pre-wrap"> </span>system("remove datos.fichero");</div></div></blockquote><div> <font color="#ff0000"> /*¿PREGUNTA? Lo mismo que al crear. Quiero eliminar el fichero escojiendolo con el nombre que he recojido de la variable del mensaje "datos.fichero"*/</font> </div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><span style="white-space:pre-wrap"> </span>break;</div>
<div><span style="white-space:pre-wrap"> </span> /*case 3:</div><div><span style="white-space:pre-wrap"> </span>agregar_linea_fichero("clientes.txt","");</div>
<div><span style="white-space:pre-wrap"> </span>break;*/</div><div><span style="white-space:pre-wrap"> </span> default:</div><div><span style="white-space:pre-wrap"> </span>puts("Opcion incorrecta");</div>
<div><span style="white-space:pre-wrap"> </span> }</div><div><span style="white-space:pre-wrap"> </span>}</div><div> }</div><div>}</div></div><div><br></div></blockquote><div><br></div><div>Si alguien me puede ayudar os lo agradezco...</div>
</div><br>