diff options
author | LAN-TW <lantw44@gmail.com> | 2013-11-16 18:34:11 +0800 |
---|---|---|
committer | LAN-TW <lantw44@gmail.com> | 2013-11-16 18:34:11 +0800 |
commit | 8018ec1fed3400d46d2de89236c5c9397deadc8f (patch) | |
tree | 4ae8dfc18754dd709af8e31e81e3e87c60d1edf3 /hw2/judge.c | |
parent | 0a2f61bc3b40a26fb192555f404a32f206d112a4 (diff) | |
download | sp2013-8018ec1fed3400d46d2de89236c5c9397deadc8f.tar.gz sp2013-8018ec1fed3400d46d2de89236c5c9397deadc8f.tar.zst sp2013-8018ec1fed3400d46d2de89236c5c9397deadc8f.zip |
HW2: 加入測試用與實際可用的 player
Diffstat (limited to 'hw2/judge.c')
-rw-r--r-- | hw2/judge.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/hw2/judge.c b/hw2/judge.c index 51c195b..5e1da77 100644 --- a/hw2/judge.c +++ b/hw2/judge.c @@ -105,12 +105,14 @@ int main (int argc, char* argv[]) { argv[0], ffd[i].fname, strerror (errno)); return 3; } + xfaddfd (fdr, FD_CLOEXEC); int fdw = open (ffd[i].fname, O_WRONLY | O_NONBLOCK); if (fdw < 0) { fprintf (stderr, "%s: cannot open `%s\' for writing: %s\n", argv[0], ffd[i].fname, strerror (errno)); return 3; } + xfaddfd (fdw, FD_CLOEXEC); if (i) { ffd[i].fd = fdw; @@ -205,6 +207,8 @@ int main (int argc, char* argv[]) { char* plthis = xgetres (plname); char* plkey = xsprintf ("%ld", ffd[i].key); char plid[2] = { c, '\0' }; + close (STDIN_FILENO); + close (STDOUT_FILENO); execl (plthis, plname, judgename, plid, plkey, (char*)NULL); fprintf (stderr, "Cannot execl `%s\': %s\n", plthis, strerror (errno)); |