Pro*C 无法读取从 korn shell 脚本传递的参数
Pro*C unable to read parameter passing from korn shell script
我有一个 korn shell 脚本,它将 4 个参数传递给 Pro*C 文件
korn shell 脚本的语法如下:
### $command_dir/proc_file_name / $deptid $txdate $pid
### I hardcode the values for testing
$command_dir/proc_file_name / 701 20170109 201701094444001
Pro*C 文件的语法:
....
main(argc, argv)
int argc
char *argv[];
username.len=strlen(argv[1]);
strncpy((char*)username.arr, argv[1],username.len);
username.arr[username.len]='[=12=]';
deptid.len=strlen(argv[1]);
strncpy((char*)deptid.arr, argv[1],deptid.len);
deptid.arr[deptid.len]='[=12=]';
txdate.len=strlen(argv[1]);
strncpy((char*)txdate.arr, argv[1],txdate.len);
txdate.arr[txdate.len]='[=12=]';
pid=atoi(argv[4]);
printf("\n%s\n", username);
printf("\n%d\n", deptid);
printf("\n%d\n", txdate);
printf("\n%d\n", pid);
....
我发现参数的值不是我放的。
请帮忙...
非常感谢
您正在为用户名、deptid 和 txdate 使用相同的数组索引 1
。纠正它,你会很好。
访问 argv[1]
等,而不检查 argc
不是一个好习惯。当不带参数调用时,您的代码将导致核心转储。
此外,我认为您的代码语法不正确。能否请您粘贴编译的代码?
我有一个 korn shell 脚本,它将 4 个参数传递给 Pro*C 文件
korn shell 脚本的语法如下:
### $command_dir/proc_file_name / $deptid $txdate $pid
### I hardcode the values for testing
$command_dir/proc_file_name / 701 20170109 201701094444001
Pro*C 文件的语法:
....
main(argc, argv)
int argc
char *argv[];
username.len=strlen(argv[1]);
strncpy((char*)username.arr, argv[1],username.len);
username.arr[username.len]='[=12=]';
deptid.len=strlen(argv[1]);
strncpy((char*)deptid.arr, argv[1],deptid.len);
deptid.arr[deptid.len]='[=12=]';
txdate.len=strlen(argv[1]);
strncpy((char*)txdate.arr, argv[1],txdate.len);
txdate.arr[txdate.len]='[=12=]';
pid=atoi(argv[4]);
printf("\n%s\n", username);
printf("\n%d\n", deptid);
printf("\n%d\n", txdate);
printf("\n%d\n", pid);
....
我发现参数的值不是我放的。 请帮忙... 非常感谢
您正在为用户名、deptid 和 txdate 使用相同的数组索引 1
。纠正它,你会很好。
访问 argv[1]
等,而不检查 argc
不是一个好习惯。当不带参数调用时,您的代码将导致核心转储。
此外,我认为您的代码语法不正确。能否请您粘贴编译的代码?