- 论坛徽章:
- 0
|
我最近写一个程序,在Linux系统的命令方式下进行,程序有三个参数:输入文件、输出文件和运行错误记录文件,编译时没有任何错误提示,但在运行时,如果输入数据只有一个时,能按要求提示错误输入,输入三个数据时,能正常运行,但输入只有两个数据时,程序却异常终止。显示:
Segmentation fault
主程序如下:
main(int argc,char *argv[])
{
if(argc<3)
{
printf("请正确输入: change 输入文件 输出文件 错误输出文件!\n");
exit(1);
}
strcpy(f1,argv[1]);
strcpy(f2,argv[2]);
strcpy(f3,argv[3]);
if ((in=fopen(f1,"r"))==NULL)
{
printf("不能打开输入文件!\n");
exit(1);
}
if ((out=fopen(f2,"r"))!=NULL)
{
printf("输出文件已存在,请另指定一个文件名!\n");
fclose(out);
exit(1);
}
else
if ((out=fopen(f2,"w"))==NULL)
{
printf("不能创建输出文件!\n");
exit(1);
}
if ((errorout=fopen(f3,"r"))!=NULL)
{
printf("错误输出文件已存在,请备份清除后重新运行!\n");
fclose(out);
exit(1);
}
else
if ((errorout=fopen(f3,"w+"))==NULL)
{
printf("不能创建错误输出文件!\n");
exit(1);
}
不知有那位高手能知道问题出在那里吗? |
|