我正在使用Linux(3.13.0-24-generiC#46-Ubuntu),并编写了一个简单的C程序
关于pid

编译时,我遇到了一些问题:

  • gcc pid_test.c,很好。
  • gcc -std=c99 pid_test.cgcc -std=c11 pid_test.c,给出错误:



  • 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;
    }
    

    我曾经在Google上搜索过;人们在Windows上似乎也有类似的问题,但是我正在使用Linux。 c99c11是否删除pid_t或移至其他 header ?或者…

    最佳答案

    以下对我有用

    // getpid() & getppid() test
    #include <stdio.h>
    #include <unistd.h>
    #include <sys/types.h>    //NOTE: Added
    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;
    }
    

    我发现它here

    10-02 17:43