summaryrefslogtreecommitdiffstats
path: root/hw2/judge.c
diff options
context:
space:
mode:
authorLAN-TW <lantw44@gmail.com>2013-11-16 18:34:11 +0800
committerLAN-TW <lantw44@gmail.com>2013-11-16 18:34:11 +0800
commit8018ec1fed3400d46d2de89236c5c9397deadc8f (patch)
tree4ae8dfc18754dd709af8e31e81e3e87c60d1edf3 /hw2/judge.c
parent0a2f61bc3b40a26fb192555f404a32f206d112a4 (diff)
downloadsp2013-8018ec1fed3400d46d2de89236c5c9397deadc8f.tar.gz
sp2013-8018ec1fed3400d46d2de89236c5c9397deadc8f.tar.zst
sp2013-8018ec1fed3400d46d2de89236c5c9397deadc8f.zip
HW2: 加入測試用與實際可用的 player
Diffstat (limited to 'hw2/judge.c')
-rw-r--r--hw2/judge.c4
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));