私はfork
とがexec
初めてで、次のプログラムを試しました。
プログラム 1:
int main(int argc, char *argv[]){
pid_t pid;
int status;
pid = fork();
if(pid == 0){
printf("new process");
execv("p1",argv);
}
else{
pid_t pr = wait(&status);// I am trying to get the exit value
// of the sub process.
printf("the child process exit with %d",status);
printf("father still running\n");
}
}
プログラム 2:
int main(){
std::cout<<"I am the new thread"<<std::endl;
sleep(1);
std::cout<<"after 1 second"<<std::endl;
exit(1);
}
最初のプログラムを実行すると、「子プロセスは 256 で終了します」という出力が表示されます。256
の代わりに結果が表示されるのはなぜ1
ですか? に変更exit(1)
するexit(2)
と、結果が になる512
のはなぜですか? 0を返す場合にのみ機能しました。