c99 - Fehler: unknown type name 'pid_t'

Ich bin mit Linux (3.13.0-24-generic #46-Ubuntu), und schrieb ein einfaches C-Programm
über pid.

Beim kompilieren, bekam ich ein Problem:

  • gcc pid_test.c ist dies in Ordnung.
  • gcc -std=c99 pid_test.c oder gcc -std=c11 pid_test.c gibt Fehler:

Fehler: unknown type name 'pid_t'

pid_test.c:

//getpid() & getppid() test
#include <stdio.h>
#include <unistd.h>

int pid_test() {
    pid_t pid, ppid;
    pid = getpid();
    ppid = getppid();
    printf("pid: %d, ppid: %d\n", pid, ppid);
    return 0;
}

int main(int argc, void *argv[]) {
    pid_test();
    return 0;
}

Habe ich die Suche mit Google; die Menschen scheinen ähnliches Problem unter Windows, aber ich bin mit Linux. Tut c99 oder c11 entfernen pid_t oder verschieben, um andere header? Oder...

Beachten Sie, dass pid_t ist kein standard C Datentyp, es sei denn, Sie aktivieren die zusätzlichen Typen irgendwie, Sie werden nicht sichtbar. Ein Weg, um Ihnen zu ermöglichen, ist die Verwendung -std=gnu99 (oder -std=gnu11); ein weiteres ist die Angabe eines POSIX oder X/Open-version zu verwenden. Normalerweise verwende ich #define _XOPEN_SOURCE 800 (oder 700 oder 600, je nach Plattform — siehe die Zusammenstellung Umgebung für POSIX.

InformationsquelleAutor Eric Wang | 2015-08-29

Schreibe einen Kommentar