<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>