Ковыряю исходники System.IO.Pipelines.Networking.Windows.RIO
, непонятен следующий момент:
public unsafe static RegisteredIO Initalize(IntPtr socket)
{
UInt32 dwBytes = 0;
RioExtensionFunctionTable rio = new RioExtensionFunctionTable();
Guid rioFunctionsTableId = new Guid("8509e081-96dd-4005-b165-9e2ee8c79e3f");
int True = -1;
int result = setsockopt(socket, IPPROTO_TCP, TcpNodelay, (char*)&True, 4);
if (result != 0)
{
var error = WSAGetLastError();
throw new Exception($"ERROR: setsockopt TCP_NODELAY returned {error}");
}
}
Как int True
может быть равно -1
? Это какая то магия между управляемым и неуправляемым кодом или банально ошибка?
По идее должно было хватить и единицы, но -1
в битовом представлении будет давать все единицы, что как бы дает максимально отличный от нуля вариант. А так как всё, не являющееся нулем есть истина, то и минус единица вполне подходит.
Явной булевой переменной тут вообще не используется при передаче между управляемым и неуправляемым кодом. Поэтому о каких-то особенностях в этом плане говорить не приходится.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Привет! Есть тестовая процедурка, написанная на C# CLR SQL, которая потом работает как обычная хранимкаПроцедура пытается создать файл в сетевой...
Есть класс в котором одно из свойств это объект из библиотеки dllСуть в том, что при вызове метода JsonConvert
Здравствуйте, есть капча при обновлении страницы появляеться новая
При переборе файлов в папках есть одна проблема, это скрытые файлы (переберает по ним тоже), как можно обойти скрытые папки?