출력에 예기치 않은 상위 프로세스 ID가 있습니다.

초보자

내 코드는 프로세스를 분기하고 각 프로세스의 PID 및 PPID를 인쇄합니다. 자녀의 PPID가 부모의 PID와 같을 것으로 예상했지만 그렇게 나오지 않습니다.

Ubuntu 14.04를 사용하고 있습니다.

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

int main(){
    int pid;
    pid = fork();
    if(pid==0){
        printf("\nI am the child and my parent id is %d and my id %d\n", getppid(), getpid());
    }
    else
        printf("\nI am the parent and my pid is %d and my parent id is %d\n", getpid(), getppid());

    return 0;
}

내가 얻는 출력은 다음과 같습니다.

I am the parent and my pid is 29229 and my parent id is 27087
I am the child and my parent id is 1135 and my id is 29230
John WH Smith

내 추측은 : 부모가 고아가 된 아이보다 먼저 돌아왔다. PID 1135는 프로세스의 새 부모가 된 사용자 초기화 프로세스 여야합니다. (Ubuntu 사용자 세션에는 2 개의 하위 리퍼가 있습니다.)

$ ps -ef | grep init
you    1135    ...    init --user

부모가 자녀를 기다리게하려면을 사용하십시오 wait. 실제로 include이미 다음이 있습니다.

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

int main(){
    int pid;
    pid = fork();
    if(pid == 0)
        printf("\nI am the child and my parent id is - %d and mine id %d\n",getppid(),getpid());
    else{
       printf("\nI am the parent and my pid is %d and my parent id is %d\n",getpid(),getppid());
       wait(NULL);
    }
    return 0;
}

이렇게하면 부모가 자식의 printf. sleep()여기저기서 몇 개의 호출 을 삽입하여 어떤 순서로 발생하는지 확인하면이 동작을보다 명확하게 볼 수 있습니다.

하위 수확 자에 대한 자세한 내용은 여기를 참조하십시오 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Java 프로그램의 소수 스위치에 예기치 않은 출력이 있습니다.

분류에서Dev

하위 프로세스를 포함하는 에코가 예기치 않은 출력을 생성 함

분류에서Dev

Python은 예기치 않은 간격으로 Git 하위 프로세스 출력을 저주합니다.

분류에서Dev

makefile의 for 루프에 예기치 않은 Opearator가 있습니다.

분류에서Dev

67 위치에 예기치 않은 문자 (j)가 있습니다.

분류에서Dev

W / System.err : 위치 0에 예기치 않은 문자 ()가 있습니다.

분류에서Dev

Python 하위 프로세스가 루프에서 호출 될 때 파일로 출력되지 않습니다.

분류에서Dev

PHP 스크립트가 "О╩ ©"이상한 문자로 예기치 않은 출력을 생성합니다.

분류에서Dev

위치 0에서 JSON의 예기치 않은 토큰 u가 비동기로 작동하지 않습니다.

분류에서Dev

Windows 하위 시스템 시스템 프로세스가 예기치 않게 종료되었습니다.

분류에서Dev

루비 열거에 예기치 않은 두 번째 패스가 있습니다.

분류에서Dev

상위 프로세스에 여러 하위 프로세스가 있고 2 개 하위 프로세스에 하위 프로세스가 있습니다.

분류에서Dev

IPython에서 Selenium의 '프로세스가 예기치 않게 상태 11로 종료 됨'을 해결하는 방법은 무엇입니까?

분류에서Dev

위치 2 JSON 구문 분석기 (Java)에 예기치 않은 문자 ( ")가 있습니다.

분류에서Dev

read.table에 예기치 않은 기호가 있습니다.

분류에서Dev

like ()에 예기치 않은 키워드 인수 'story_id'가 있습니다.

분류에서Dev

가입 코드에 예기치 않은 MultiValueDictKeyError가 있습니다.

분류에서Dev

JSON 구문 분석 : 위치 0에 예기치 않은 문자 (ÿ)가 있습니다.

분류에서Dev

href에 예기치 않은 식별자가 있습니다.

분류에서Dev

C ++ Getline은 Linux의 여러 분기 프로세스에서 항상 줄을 가져 오지 않습니다.

분류에서Dev

방법을 비가상에서 가상으로 변경하면 예기치 않은 동작이 발생할 수 있습니다.

분류에서Dev

포드 사양 린트 오류 : "프로그램에 예기치 않은 '@'가 있습니다."

분류에서Dev

예상 배치 크기와 모델 출력 배치 크기가 일치하지 않습니다.

분류에서Dev

급여 및 휴대폰 번호를 출력 할 수 없습니다. 항상 C에서 예기치 않은 결과가 생성됩니다.

분류에서Dev

pkill은 상위 프로세스 ID가 1 인 프로세스를 종료 할 수 없습니다.

분류에서Dev

마우스가 제어 내에 있는지 확인하는 예기치 않은 출력

분류에서Dev

wix-Component 요소에 예기치 않은 하위 요소 'Directory'가 있습니다.

분류에서Dev

다중 처리의 가치에 대한 설명? (예기치 않은 출력)

분류에서Dev

Linux OS의 Python 하위 프로세스 호출이 예상대로 작동하지 않습니다.

Related 관련 기사

  1. 1

    Java 프로그램의 소수 스위치에 예기치 않은 출력이 있습니다.

  2. 2

    하위 프로세스를 포함하는 에코가 예기치 않은 출력을 생성 함

  3. 3

    Python은 예기치 않은 간격으로 Git 하위 프로세스 출력을 저주합니다.

  4. 4

    makefile의 for 루프에 예기치 않은 Opearator가 있습니다.

  5. 5

    67 위치에 예기치 않은 문자 (j)가 있습니다.

  6. 6

    W / System.err : 위치 0에 예기치 않은 문자 ()가 있습니다.

  7. 7

    Python 하위 프로세스가 루프에서 호출 될 때 파일로 출력되지 않습니다.

  8. 8

    PHP 스크립트가 "О╩ ©"이상한 문자로 예기치 않은 출력을 생성합니다.

  9. 9

    위치 0에서 JSON의 예기치 않은 토큰 u가 비동기로 작동하지 않습니다.

  10. 10

    Windows 하위 시스템 시스템 프로세스가 예기치 않게 종료되었습니다.

  11. 11

    루비 열거에 예기치 않은 두 번째 패스가 있습니다.

  12. 12

    상위 프로세스에 여러 하위 프로세스가 있고 2 개 하위 프로세스에 하위 프로세스가 있습니다.

  13. 13

    IPython에서 Selenium의 '프로세스가 예기치 않게 상태 11로 종료 됨'을 해결하는 방법은 무엇입니까?

  14. 14

    위치 2 JSON 구문 분석기 (Java)에 예기치 않은 문자 ( ")가 있습니다.

  15. 15

    read.table에 예기치 않은 기호가 있습니다.

  16. 16

    like ()에 예기치 않은 키워드 인수 'story_id'가 있습니다.

  17. 17

    가입 코드에 예기치 않은 MultiValueDictKeyError가 있습니다.

  18. 18

    JSON 구문 분석 : 위치 0에 예기치 않은 문자 (ÿ)가 있습니다.

  19. 19

    href에 예기치 않은 식별자가 있습니다.

  20. 20

    C ++ Getline은 Linux의 여러 분기 프로세스에서 항상 줄을 가져 오지 않습니다.

  21. 21

    방법을 비가상에서 가상으로 변경하면 예기치 않은 동작이 발생할 수 있습니다.

  22. 22

    포드 사양 린트 오류 : "프로그램에 예기치 않은 '@'가 있습니다."

  23. 23

    예상 배치 크기와 모델 출력 배치 크기가 일치하지 않습니다.

  24. 24

    급여 및 휴대폰 번호를 출력 할 수 없습니다. 항상 C에서 예기치 않은 결과가 생성됩니다.

  25. 25

    pkill은 상위 프로세스 ID가 1 인 프로세스를 종료 할 수 없습니다.

  26. 26

    마우스가 제어 내에 있는지 확인하는 예기치 않은 출력

  27. 27

    wix-Component 요소에 예기치 않은 하위 요소 'Directory'가 있습니다.

  28. 28

    다중 처리의 가치에 대한 설명? (예기치 않은 출력)

  29. 29

    Linux OS의 Python 하위 프로세스 호출이 예상대로 작동하지 않습니다.

뜨겁다태그

보관