は、私は理解していませんでしなぜこの誰もこの出力(オペレーティングシステム)を説明できますか?私は、オペレーティングシステムのコースを勉強しながら、
のような以下のコードの出力コード:
#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
かの子の値子の価値から5に戻ると、なぜ20になったのですか?
メモリのアドレスをどのように印刷できますか? –
@ Bobj-C: 'printf("%p "、(void *)&value);' –
を使ってアドレスを出力することができます。私は子と親のPIDの同じ出力に16進数値のコードを追加しますか? –