当前位置: 技术问答>linux和unix
一个很简单的问题 关于文件打开出错
来源: 互联网 发布时间:2017-02-23
本文导语: 源码: #include #include #include #include #define BUF 1024 int main(int argc,char **argv) { FILE *from_fd,*to_fd; if(argc!=3) { printf("argument error"); exit(1); } if((from_fd=fopen(argv[1],"w+b"))==NULL) { printf(...
源码:
#include
#include
#include
#include
#define BUF 1024
int main(int argc,char **argv)
{
FILE *from_fd,*to_fd;
if(argc!=3)
{
printf("argument error");
exit(1);
}
if((from_fd=fopen(argv[1],"w+b"))==NULL)
{
printf("open %s failuren",argv[1]);
exit(1);
}
if((to_fd=fopen(argv[2],"w+b"))==NULL);
{
printf("OPEN FILE %s ERRORn",argv[2]);
exit(1);
}
}
运行时:
qust@qust-K42JZ:~/test$ gcc fopen_file.c -o fopen_file
qust@qust-K42JZ:~/test$ ./fopen_file test.c newfile
OPEN FILE newfile ERROR
test.c newfile这两个文件都是不存在的,创建这两个文件为什么会出错呢??
但实际在目录下创建了这两个文件。望大家指教,谢谢!
#include
#include
#include
#include
#define BUF 1024
int main(int argc,char **argv)
{
FILE *from_fd,*to_fd;
if(argc!=3)
{
printf("argument error");
exit(1);
}
if((from_fd=fopen(argv[1],"w+b"))==NULL)
{
printf("open %s failuren",argv[1]);
exit(1);
}
if((to_fd=fopen(argv[2],"w+b"))==NULL);
{
printf("OPEN FILE %s ERRORn",argv[2]);
exit(1);
}
}
运行时:
qust@qust-K42JZ:~/test$ gcc fopen_file.c -o fopen_file
qust@qust-K42JZ:~/test$ ./fopen_file test.c newfile
OPEN FILE newfile ERROR
test.c newfile这两个文件都是不存在的,创建这两个文件为什么会出错呢??
但实际在目录下创建了这两个文件。望大家指教,谢谢!
|
if((to_fd=fopen(argv[2],"w+b"))==NULL);
去掉后面的分号
去掉后面的分号
|
楼上正解,因为无论如何,你都会走下面的
printf("OPEN FILE %s ERRORn",argv[2]);
exit(1);
printf("OPEN FILE %s ERRORn",argv[2]);
exit(1);