Msgrcv nə vaxt uğursuz olacaq?

Mündəricat:

Msgrcv nə vaxt uğursuz olacaq?
Msgrcv nə vaxt uğursuz olacaq?
Anonim

msgrcv funksiyası aşağıdakı hallarda uğursuz olacaq: [E2BIG] Mtextin dəyəri msgsz-dən böyükdür və (msgflg & MSG_NOERROR) 0 olarsa. [EACCES]

Msgrcv blok edir?

msgsnd və msgrcv funksiyaları ya bloklayan və ya bloklanmayan əməliyyatlar kimi yerinə yetirilə bilər. Bloklanmayan əməliyyatlar asinxron mesaj ötürülməsinə imkan verir -- mesajın göndərilməsi və ya qəbulu nəticəsində proses dayandırılmır.

msgrcv mesajı növbədən silirmi?

msgrcv sistem zəngi mesajı msqid ilə müəyyən edilmiş növbədən silir və onu msgp tərəfindən göstərilən buferə yerləşdirir. msgsz arqumenti msgp arqumenti ilə işarə edilən strukturun üzv mtext üçün baytla maksimum ölçüsünü təyin edir.

msgrcv necə işləyir?

msgrcv funksiyası msqid parametri ilə müəyyən edilmiş mesaj növbəsindən mesajı oxuyur və onu msgp parametri ilə işarə edilən istifadəçi tərəfindən müəyyən edilmiş buferə yerləşdirir. msgp parametri aşağıdakıları ehtiva etməli olan istifadəçi tərəfindən müəyyən edilmiş buferə işarə edir: Mesajın növünü təyin edən long int tipli sahə.

msgrcv nə qaytarır?

DÖNÜŞ DƏYƏRİ

Uğurlu tamamlandıqdan sonra msgrcv mtext buferinə faktiki yerləşdirilmiş baytların sayına bərabər dəyər qaytarır. Əks halda, heç bir mesaj alınmayacaq, msgrcv (ssize_t)-1 qaytarılacaq və xətanı göstərmək üçün səhv təyin ediləcək.

Tövsiyə: