Поскольку вы отметили это linux , я предполагаю, что мы говорим конкретно о Linux.
Проект man-страниц Linux get 2 имя_хоста говорит:
Библиотека GNU C не использует системный вызов gethostname ();
вместо этого он реализует gethostname () как библиотечную функцию, которая вызывает
uname (2) и копирует до len байтов из возвращенного поля nodename
в имя.
Итак, в Linux оба обеспечиваются одним и тем же системным вызовом, и нет никакой разницы.