- 论坛徽章:
- 0
|
UNIX run time 错误...
- #define SIZE 100
- #define MAX_PROCESS 20
- struct shmid_game{
- int num_process;
- int num_running;
- int next;
- int counter;
- int count_max;
- int proc[5];
- };
- int main(int argc, char *argv[])
- {
- struct shmid_game myGame;
- int pid, i;
- int status;
- myGame.counter = 0;
- int flag = 1;
- int shmid;
- key_t key = 5678;
-
- struct shmid_game *Game;
- shmid = shmget(key, SIZE, IPC_CREAT|0666);
-
- if (shmid<0){
- perror("shmget failed in ap_tpf_get_shared_mem function");
- exit(1);
- }
- for(i = 0; i < 5; i++)
- {
- myGame.proc[i] = 1;
- pid = fork();
-
- if (pid < 0)/* check for error in fork */
- {
- perror("error in fork");
- exit(1);
- }
- else if (pid >; 0)
- {
- if(((i%3)+1) != 3 && myGame.counter<3)
- myGame.counter++;
- else
- {
- flag = 0;
- myGame.counter = 0;
- }
- printf("process %d <pid %d>; %d\n", i+1, getppid(), myGame.counter);
- wait(&status); /* parent waits for child to finish */
- }
复制代码
.
.
.
.
再做不出来就死定了  |
|