Почему gid_t отсутствует в моем заголовочном файле sys / types? - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь запустить эту программу на C с Dev C ++ в Windows 10:

#include <stdio.h>
#include <sys/types.h>

int main()
{
    printf("gid_t: %zu\n", sizeof(gid_t));
}

И эта ошибка показывает: [Ошибка] 'gid_t' не был объявлен в этой области.

Я проверил, что gid_t должен быть в файле sys / types.h, но когда я открыл файл, его там нет.Как я могу сделать эту работу?

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Вы используете Windows , но делаете:

#include <sys/types.h>

Это не сработает, так как этот заголовок является частью UNIX (не Windows).

gid_t не является частью стандарта C. В результате его можно найти только в реализациях, специфичных для платформы (например, в этом случае в UNIX).


Уродливый обходной путь, это ввести typedef-it самостоятельновот так:

typedef int gid_t;

за исключением случаев, когда вы действительно знаете, что делаете, и gid_t может быть другого типа в вашем конкретном случае.

0 голосов
/ 04 октября 2018

Это может быть потому, что Windows не Unix.sys/types.h является частью Unix / POSIX API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...