日期:2014-05-16 浏览次数:20704 次
#include <iostream> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> #include <errno.h> #include <string.h> #include <time.h> using namespace std; int main() { srand(time(NULL)); int status,i; pid_t apid; for (i = 0; i < 10; i++) { status = fork(); if (status == 0 || status == -1) break; } if (status == -1) { //error cout << "error" << endl; } else if (status == 0) { //sub process pid_t cpid; cpid = getpid(); cout << "in child " << i <<" pid= "<< cpid << endl; int msec; msec = rand()%1000000; usleep(msec); exit(0); } else { //parent process apid=wait(&status); cout << "apid= " << apid << endl; } return 0; }
#include <iostream> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> #include <errno.h> #include <string.h> #include <time.h> using namespace std; int main() { srand(time(NULL)); int status,i; pid_t apid; for (i = 0; i < 10; i++) { status = fork(); if (status == 0 || status == -1) break; } if (status == -1) { //error cout << "error" << endl; } else if (status == 0) { //sub process pid_t cpid; cpid = getpid(); cout << "in child " << i <<" pid= "<< cpid << endl; int msec; // Add the following three lines time_t tick; tick = time(0); srand((tick << 16) | (getpid() & 0xffff)); msec = rand()%1000000; // Add the following line to check the msec cout << "msec = " << msec << endl; usleep(msec); exit(0); } else { //parent process apid=wait(&status); cout << "apid= " << apid << endl; } return 0; }