Вы используете Windows , но делаете:
#include <sys/types.h>
Это не сработает, так как этот заголовок является частью UNIX (не Windows).
gid_t
не является частью стандарта C. В результате его можно найти только в реализациях, специфичных для платформы (например, в этом случае в UNIX).
Уродливый обходной путь, это ввести typedef-it самостоятельновот так:
typedef int gid_t;
за исключением случаев, когда вы действительно знаете, что делаете, и gid_t
может быть другого типа в вашем конкретном случае.