Кроссплатформенное программирование на C?
если коротко то стоимость программы становится в 2.5х больше.
Развернуто из винды ни кто не тащит программы в линукс, слишком маленькая аудитория,  а вот обратный ход возможен.
UI делают на  QT
сетевой стек Npcap WinPcap
Впрочем делают часто для галочки да и не все возможно перенести.

Типичный пример это NGINX, Apache

В общем старайтесь избегать кросплатформенных приложений, особенно на таком низком уровне.
Кросплатформенность хороша только в Java и NET и то с той оговоркой что пишите только серверные приложения.
В общем, на чистом C  лучше не писать кроссплатформенные приложения с GUI.
Практически все кроссплатформенные GUI- библиотеки разрабатываются для С++ (за очень редким исключением).
Так что рекомендую погрузиться в  C++  и взять или  Qt или WxWidgets...
Ну, или программировать на opengl  + glfw  с расширениями :)