diff options
-rw-r--r-- | hw2/judge.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/hw2/judge.c b/hw2/judge.c index 5e1da77..cb0d90c 100644 --- a/hw2/judge.c +++ b/hw2/judge.c @@ -192,8 +192,15 @@ int main (int argc, char* argv[]) { if (t) { write (ffd[i].fd, lastmsg, lastlen); } else { + while (read (ffd[i].fd, trash_buf, 512) > 0); fdata_clear (&ffd[i]); ffd[i].key = random (); + for (int j = 1; j < i; j++) { + if (ffd[i].key == ffd[j].key) { + ffd[i].key = random (); + j = 0; + } + } ffd[i].pid = fork (); if (ffd[i].pid < 0) { fprintf (stderr, "Cannot fork: %s\n", strerror (errno)); |