diff options
author | LAN-TW <lantw44@gmail.com> | 2012-11-12 11:16:03 +0800 |
---|---|---|
committer | LAN-TW <lantw44@gmail.com> | 2012-11-12 11:16:03 +0800 |
commit | cfa4b4203be3761bf37ec8cf7d394028ebd24e82 (patch) | |
tree | 116e5eb46c12f10199ff725a04bdc38530251c32 /src/main.c | |
parent | aadb952c45398bf1b08f8b04d9804a7355e0b462 (diff) | |
download | sctjudge-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.c | 14 |
1 files changed, 8 insertions, 6 deletions
@@ -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); |