【发布时间】:2017-12-27 11:46:55
【问题描述】:
我需要创建一个 char* 数组[],然后我必须将其传递给 execv。
- 第一个元素是路径“./exec_test”
- 对于第二个参数:在 A/B 之间随机选择
- 对于第三个参数:选择一个随机字母 A - Z
- 对于第四个参数:选择 [2, 2+A_CONST] 之间的随机整数
-
然后为空
void perform_exec(){ char *type= 'A' + (random() % 2); char *name= 'A' + (random() % 64); int rand_num= rand(); char *args[5]; args[0]= "./test_exec"; args[1]= name; args[2]= type; args[3]= rand_num; args[4]= NULL; execv(args[0], args); printf("you souldn't see this. exec error\n"); exit(EXIT_FAILURE);}
我知道这段代码有严重问题,但实际上无法弄清楚它是什么。
我收到错误 #014:地址错误。
【问题讨论】:
-
将
int分配给char*..不是一个好方法。是的,您认为这些地址可以访问吗?0到RAND_MAX? -
提高编译器的警告级别并认真对待它的警告。
-
“实际上无法弄清楚它是什么”那么学习 C 呢?