Pro * C无法读取从korn shell脚本传递的参数

时间:2017-01-09 03:01:45

标签: shell unix ksh

我有一个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]='\0';

deptid.len=strlen(argv[1]);
strncpy((char*)deptid.arr, argv[1],deptid.len);
deptid.arr[deptid.len]='\0';

txdate.len=strlen(argv[1]);
strncpy((char*)txdate.arr, argv[1],txdate.len);
txdate.arr[txdate.len]='\0';

pid=atoi(argv[4]);

printf("\n%s\n", username);
printf("\n%d\n", deptid);
printf("\n%d\n", txdate);
printf("\n%d\n", pid);

....

我发现参数的值不是我放的。 请帮忙... 非常感谢

1 个答案:

答案 0 :(得分:0)

您对username,deptid和txdate使用相同的1数组索引。纠正这一点,你会很好。

访问argv[1]等,而不检查argc不是一个好习惯。在没有参数的情况下调用时,您的代码将导致核心转储。

另外,我不认为您的代码具有正确的语法。你能粘贴编译的代码吗?