Am o problema legata de noul api. Creez o coada (fara flag-ul O_NONBLOCK) pe server astfel:<br><br>mqd_t m = mq_open("/coada", O_CREAT | O_RDWR, 0666, NULL);<br>char buf[1024];<br>usigned int prio = 10;<br>int ret = mq_receive(m, buf, 1024, &prio);<br>
printf("ret = %d, errno = %d", ret, errno);<br><br>Deci, deschid o coada si citesc din ea. Ma astept ca apelul de citire sa fie blocant deoarece coada mea este goala.<br>Dar, mq_receive() returneaza -1. Primesc eroarea errno = 38 (adica ENOSYS - "Function not implemented") - iar la aceasta adresa<br>
<a href="http://www.opengroup.org/onlinepubs/009695399/functions/mq_receive.html">http://www.opengroup.org/onlinepubs/009695399/functions/mq_receive.html</a><br>spun despre ENOSYS ca nici nu mai exista in acest api.<br>Eu am nevoie de apel blocant la aceasta functie. El nu este blocant by default ?<br>
Gresesc undeva ?<br><br>Eu sunt studenta in anul 5 si fac tema pentru restanta. Cand am facut eu laboratorul acesta prezenta api-ul vechi cu msgget(), etc. Se poate face o exceptie pentru noi cei de anul 5 sa le putem utiliza pe cele vechi ? Macar, cu acesta am lucrat.<br>
<br>Multumesc.<br>Delia Adiaconitei<br>