1b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include <stdlib.h> 2b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include <stdio.h> 3b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include <errno.h> 4b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include <unistd.h> 5b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include <sys/wait.h> 6b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanovint main() 7b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{ 8b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov int mem = 0, pid; 9b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov pid = fork(); 10b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov if (pid == -1) { 11b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov mem = 1; 12b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov perror("fork"); 13b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exit(1); 14b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov } 15b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 16b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov if (pid == 0) { 17b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov int burn; 18b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov for (burn = 0; burn < 100000; burn++) /* burncpu */__asm__ __volatile("":::"memory") ; 19b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov if (mem == 0) 20b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exit(0); 21b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov else 22b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exit(1); 23b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov } else { 24b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov int ret; 25b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov int status; 26b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov while((ret = waitpid(pid, &status, 0)) != pid) { 27b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov if (errno != EINTR) { 28b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov perror("waitpid"); 29b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov exit(1); 30b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov } 31b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov } 32b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov mem = status; 33b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov } 34b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov if (mem == 0) 35b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("mem is zero\n"); 36b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 37b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov return 0; 38b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov} 39