[英]How to turn this write_all in non blocking function to write bytes through UDP?
我在 C 中有這個 function,我想用它在非阻塞模式下通過我的 udp 套接字寫入字節。 我應該完成“待完成”部分。 任何人都可以幫助我了解該怎么做嗎? 回憶寫 function 有什么意義嗎?
ssize_t nonblocking_write_all(int fd, const void *ptr, size_t n)
{
size_t n_left = n;
while (n_left > 0) {
ssize_t n_written = write(fd, ptr, n_left);
if (n_written < 0) {
/*** TO BE DONE START ***/
/*** TO BE DONE END ***/
if (n_left == n)
return -1; /* nothing has been written */
else
break; /* we have written something */
} else if (n_written == 0) {
continue;
}
n_left -= n_written;
ptr += n_written;
}
assert(n - n_left >= 0);
return n - n_left;
}
這有效: n_written=nonblocking_write_all(fd,ptr,n_left);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.