c - Count number of processes created using fork in a for loop -


i trying find way count number of processes created in loop of length 10 fork() call. easy see result 2^n n calls, need way compute in program.

i have found identical question in here. however, when tested second solution given here, works ok number of forks less 10. 10, yelds 256. why that? , there solution problem? (apart using pipes). here actual code:

for(i=1; i<=10; i++) {     fork();     printf("the process pid=%d\n", getpid()); } 

there 1 byte exit status of process. therefore, cannot count higher 255 via process exit codes. furthermore, quirk of specific algorithm tried happens produce maximum possible exit status (to parent process adds 1 256). exit() function uses least significant 8 bits of argument (and returning x main() has same effect calling exit(x)).

to count higher, need different approach. establish counter in shared memory, , have each child process increment (with appropriate synchronization). runs cleanly, shared memory not trivial work with. have each process append file leave record; parent process read file count how many processes left such record.


Comments

Popular posts from this blog

Payment information shows nothing in one page checkout page magento -

tcpdump - How to check if server received packet (acknowledged) -