aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.c
diff options
context:
space:
mode:
authorLAN-TW <lantw44@gmail.com>2012-11-12 11:16:03 +0800
committerLAN-TW <lantw44@gmail.com>2012-11-12 11:16:03 +0800
commitcfa4b4203be3761bf37ec8cf7d394028ebd24e82 (patch)
tree116e5eb46c12f10199ff725a04bdc38530251c32 /src/main.c
parentaadb952c45398bf1b08f8b04d9804a7355e0b462 (diff)
downloadsctjudge-cfa4b4203be3761bf37ec8cf7d394028ebd24e82.tar.gz
sctjudge-cfa4b4203be3761bf37ec8cf7d394028ebd24e82.tar.zst
sctjudge-cfa4b4203be3761bf37ec8cf7d394028ebd24e82.zip
各項參數由 int 改為 unsigned int
因為 setrlimit 的參數其實是用 unsigned int,因此改成 unsigned int。 同時命令列解析的部分,也將 atoi 改成 sscanf 了。
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/main.c b/src/main.c
index e88c813..3c9212b 100644
--- a/src/main.c
+++ b/src/main.c
@@ -221,8 +221,8 @@ int main(int argc, char* argv[]){
}else if(!strcmp(&argv[i][1], "t") ||
!strcmp(&argv[i][1], "time")){
SCTMAIN_CHECKARGEXIST;
- mcopt.exectime = atoi(argv[i]);
- if(mcopt.exectime <= 0){
+ if(sscanf(argv[i], "%u", &mcopt.exectime) <= 0 ||
+ mcopt.exectime <= 0){
fprintf(stderr, "%s: 「%s」不是正確的時間設定值\n",
argv[0], argv[i]);
exit(SCTEXIT_SYNTAX);
@@ -260,8 +260,9 @@ int main(int argc, char* argv[]){
if(!strcmp(qarglist[j].arg_name, "mem") ||
!strcmp(qarglist[j].arg_name, "memory")){
SCTMAIN_CHECKQARGHAVEVALUE;
- mcopt.memlimit = atoi(qarglist[j].arg_value);
- if(mcopt.memlimit <= 0){
+ if(sscanf(qarglist[j].arg_value, "%u",
+ &mcopt.memlimit) <= 0 ||
+ mcopt.memlimit <= 0){
fprintf(stderr, "%s: 「%s」不是正確的記憶體限制"
"設定值\n", argv[0],
qarglist[j].arg_value);
@@ -270,8 +271,9 @@ int main(int argc, char* argv[]){
}else if(!strcmp(qarglist[j].arg_name, "outlimit") ||
!strcmp(qarglist[j].arg_name, "outlim")){
SCTMAIN_CHECKQARGHAVEVALUE;
- mcopt.outlimit = atoi(qarglist[j].arg_value);
- if(mcopt.outlimit <= 0){
+ if(sscanf(qarglist[j].arg_value, "%u",
+ &mcopt.outlimit) <= 0 ||
+ mcopt.outlimit <= 0){
fprintf(stderr, "%s: 「%s」不是正確的輸出限制"
"設定\n", argv[0], qarglist[j].arg_value);
exit(SCTEXIT_SYNTAX);