Эти функции возвращают -1 в случае ошибки и длину ввода в случае успеха. При каких условиях они могут возвращать значение меньше длины и больше или равное 0 для сокета UDP на Linux?
Этот вопрос StackOverflow аналогичен, но в контексте не- Linux RTOS. Ответы утверждают, что этого не может быть, а производитель ОС им противоречит. Этот вопрос StackOverflow похож, но в принятом ответе обсуждается только получение. Гид Биджа утверждает, что это может случиться. libuv утверждает, что не может. POSIX, похоже, не запрещает это.
Поэтому мне любопытно, какие обстоятельства, если таковые имеются, приводят к возвращаемому значению «короткой записи» для сокетов UDP на Linux? Есть ли в POSIX пункт inte rnet RF C или, который запрещает это? Может ли это произойти, например, если дейтаграмма UDP фрагментирована (отправлена несколькими IP-пакетами)?