정확하게 프로세스 작업 방법을 이해하려고합니다. 더 구체적으로 어떤 코드가 실행되며, 어떤 코드가 실행되지 않습니다. 내가 이해하지 못하는 것을 설명하기 위해 몇 가지 예제 코드를 작성했다. 내가 이해에서C 프로세스 : fork() scope
int main(){
//Program code part 1
int myfun(){
if(fork()>0){
//Program code part 2
}
return 0;
}
//Program code part 3
}
는, 부모 프로세스가 코드 파트 1과 3을 실행하고 myfun에 0을 반환해야합니다(). 아이는 파트 2를 실행해야합니다. 확실히 1이 아닙니다. 파트 3을 실행합니까? myfun()의 te 범위에서 생성 되었기 때문에 생각하지는 않지만 내 프로그램이 엉망이되기 전에 정말로 확신하고 싶습니다.
'myfun'은'main' 내부에 정의되어 있습니다. 나는 gcc가 이것을 지원하는 확장 기능을 가지고 있다고 믿는다. (표준이 아니다.) 그러나 당신은 결코 그 기능을 호출하지 않는다. – Kevin
'mainf 안에'myfun' *을 정의했습니다. C에서 그렇게 할 수는 없습니다. 질문을 clarifiy로 편집 할 수 있습니까? 'main'이'myfun'을 호출합니까? –
C는 중첩 된 함수 정의를 허용하지 않습니다. – PSkocik