而我學習操作系統當然,我不明白爲什麼下面的代碼的輸出類似這樣的任何人都可以解釋這個輸出(操作系統)?
代碼:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
int main (int argc, const char * argv[]) {
int value = 5;
pid_t pid = fork();
printf("pid = %d \n",pid);
if (pid == 0){
value+=15;
printf("Value ch :%d \n",value);
}
else {
if (pid > 0) {
wait(NULL);
printf("Value pr :%d \n",value);
exit(1);
}
}
return 0;
}
OUTPUT:
run
[Switching to process 24752]
Running…
pid = 24756
pid = 0
Value ch :20
Value pr :5
如果孩子值變成20爲什麼從孩子返回後值= 5
如何打印內存地址? – 2010-11-19 15:53:06
@ Bobj-C:你可以使用'printf(「%p」,(void *)&value)打印一個地址;' – 2010-11-19 16:03:19
我在子代和父代PID的相同輸出中添加一個十六進制值的代碼? – 2010-11-19 16:07:35